Glide引入
compile 'com.github.bumptech.glide:glide:3.7.0'
配置网络权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
Glide 简单使用
ImageView glideView = (ImageView) findViewById(R.id.iv_glide);
Glide.with(this)
.load("http://seopic.699pic.com/photo/40008/7898.jpg_wh1200.jpg")
.override(100,100)
.asBitmap()
.asGif()
.placeholder(R.mipmap.show)
.error(R.mipmap.tiger_one)
.into(glideView);
方法说明
with()
:方法加载Glide实例,入参决定图片加载的生命周期-- 当入参是Activtity Fragment 时,随着对应的类销毁,图片加载也结束,当入参是Application类型时,图片加载周期将随着这个应用的生命周期。load()
:方法传入加载图片的位置--挂在内存卡的图片,二进制流图片等等。into()
:方法传入需要显示图片的控件placeholder()
:设置图片加载还未回调时的占位图片error()
:传入图片加载失败时的图片override(100,100)
:指定图片加载的尺寸,不指定的时候更具ImageView的大小自动计算asBitmap()
:加载静态图片,不指定时根据加载图片自动判断asGif()
:加载动态图,不指定时根据加载图片自行判断
跳过缓存
skipMemoryCache(true) : 禁止使用内存缓存
diskCacheStrategy(DiskCacheStrategy.NONE) 禁止磁盘缓存
- DiskCacheStrategy.NONE 不缓存
- DiskCacheStrategy.RESULT 只缓存原图
- DiskCacheStrategy.SOURCE 只缓存转换图
- DiskCacheStrategy.ALL 只缓存原图
缓存机制
内存缓存 :LruCache + HashMap 弱引用的方法(暂时不使用的图片缓存在LruCache中,使用中的图片缓存在HashMap弱引用中)
磁盘缓存 :LruCache (转换图片缓存和原始图片缓存在两个不同的地方)
图片转换
transform()
获取缓存原图
File file = Glide.with(ShowPigPic.this).load("http://seopic.699pic.com/photo/10031/3162.jpgwh1200.jpg") .downloadOnly(Target.SIZEORIGINAL,Target.SIZE_ORIGINAL).get();
Bitmap bitmap = BitmapFactory.decodeFile(file.getPath());
imageView.setImageBitmap(bitmap);