开发者社区> 开开心心过> 正文

Android图片加载与缓存开源框架:Android Glide

简介: 《Android图片加载与缓存开源框架:Android Glide》 Android Glide是一个开源的图片加载和缓存处理的第三方框架。
+关注继续查看

《Android图片加载与缓存开源框架:Android Glide》

Android Glide是一个开源的图片加载和缓存处理的第三方框架。和Android的Picasso库类似,个人感觉比Android Picasso好用。Android Glide使自身内部已经实现了缓存策略,使得开发者摆脱Android图片加载的琐碎事务,专注逻辑业务的代码。Android Glide使用便利,短短几行简单明晰的代码,即可完成大多数图片从网络(或者本地)加载、显示的功能需求。

使用Android Glide,需要先下载Android Glide的库,Android Glide在github上的项目主页:

https://github.com/bumptech/glide

实际的项目使用只需要到Glide的releases页面把jar包下载后导入到本地的libs里面即可直接使用。Glide的releases的页面地址:https://github.com/bumptech/glide/releases ,在此页面找到最新的jar包,下载后放到自己项目的libs中,比如glide 3.6.0库的jar包下载地址:https://github.com/bumptech/glide/releases/download/v3.6.0/glide-3.6.0.jar


 接下来是在自己的项目中具体使用,现在给出一个具体的使用例子加以简单说明(通过网络加载图片然后在ImageView中显示出来):

MainActivity.java

import com.bumptech.glide.Glide;

import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;

public class MainActivity extends ActionBarActivity {

	private Activity mActivity;
	// 将从此URL加载网络图片。
	private String img_url = "http://avatar.csdn.net/9/7/A/1_zhangphil.jpg";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mActivity = this;

		setContentView(R.layout.activity_main);

		ListView lv = (ListView) findViewById(R.id.listView);
		lv.setAdapter(new MyAdapter(this, R.layout.item));
	}

	private class MyAdapter extends ArrayAdapter {

		private int resource;

		public MyAdapter(Context context, int resource) {
			super(context, resource);
			this.resource = resource;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			if (convertView == null) {
				convertView = LayoutInflater.from(mActivity).inflate(resource,
						null);
			}

			ImageView iv = (ImageView) convertView.findViewById(R.id.imageView);

			Glide.with(mActivity).load(img_url).centerCrop()
			/*
			 * 缺省的占位图片,一般可以设置成一个加载中的进度GIF图
			 */
			.placeholder(R.drawable.loading).crossFade().into(iv);

			return convertView;
		}

		@Override
		public int getCount() {
			// 假设加载的数据量很大
			return 10000;
		}
	}
}

MainActivity.java需要的两个布局文件:

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>


item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android体系课-开源框架-这是一份详细的Glide源码分析文章
最近在`组件化`开发中准备封装一个`图片加载库`,于是乎就有了这篇文章 本篇文章对`Glide`源码过程做了一个详细的讲解,也是为了记录下自己对`Glide`的理解,以后忘记还可以从这里查找。
78 0
新建文件夹,复制文件,glide保存文件android 获取sdcard,获取data.data 目录file.mkdirs() file.mkdir()Dev
新建文件夹,复制文件,glide保存文件android 获取sdcard,获取data.data 目录file.mkdirs() file.mkdir()Dev
57 0
Android | 适可而止!看Glide如何把生命周期安排得明明白白
Android | 适可而止!看Glide如何把生命周期安排得明明白白
169 0
Android Glide加载图片、网络监听、设置资源监听
Android Glide加载图片、网络监听、设置资源监听
411 0
Android Glide加载网络图片不显示,但用网页打开又正常显示
Android Glide加载网络图片不显示,但用网页打开又正常显示
290 0
Android RV通过Glide加载图片闪一下
Android RV通过Glide加载图片闪一下
41 0
Android Glide 缓存机制及源码
Glide的简单使用 Glide里的缓存 什么是三级缓存? 缓存机制 为何设计出活动缓存 加载流程 Glide源码 加载流程 1.Engine类 2.load方法 3.EngineKey 4.loadFromMemory 5.loadFromActiveResources 6.loadFromCache 7.getEngineResourceFromCache 8.waitForExistingOrStartNewJob 9.DecodeJob 10.DiskCacheProvider 11.DiskCache.Factory LRU是什么 内存缓存的LRU LruCache LruCache
138 0
Android Glide 的简单使用(一)(下)
Generated API 使用Generated API(高级用法) 定制请求 GlideExtension GlideOption GlideType submit同步获取图片资源 Application Options(选项) Memory cache(内存缓存) Disk Cache(磁盘缓存) Bitmap pool(位图池) 配置缓存 磁盘缓存策略(Disk Cache Strategy) 仅从缓存加载图片 跳过缓存 清理磁盘缓存 相关资源 Glide 缓存机制及源码(二) Glide git传送门 Glide中文文档 glide-transformations传送门
159 0
Android Glide 的简单使用(一)(上)
前言 Gilde简介 Android SDK 要求 所需权限 网络加载 本地存储 性能 Glide基本用法 简单使用
328 0
Anroid笔记:Android图片加载框架Glide用法
Anroid笔记:Android图片加载框架Glide用法
111 0
+关注
开开心心过
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
蚂蚁聚宝Android秒级编译——Freeline
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关镜像