做项目之前 首先就是需要添加Glide的依赖 和网络请求的依赖
compile 'com.github.bumptech.glide:glide:3.7.0'
.添加图片淡入加载的效果
.crossFade()
缓存到磁盘
Glide.with(this).load(url).animate(android.R.anim.slide_in_left).diskCacheStrategy(DiskCacheStrategy.ALL).into(myImageview);)
基本用法
Glide.with(mContext)
.load(url)
.placeholder(R.drawable.loading_spinner)
.crossFade()
.into(myImageView);
清除缓存
Glide.get(this).clearMemory(); //主线程运行
/** 子线程运行 */
new Thread(new Runnable() {
@Override
public void run() {
Glide.get(getApplicationContext()).clearDiskCache();
}
}).start();
滚动加载,不滚动时不加载,提高listview效率:
Glide.with(context).resumeRequests()
Glide.with(context).pauseRequests()
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
//每一条数据都是一个Map
switch (scrollState){
case SCROLL_STATE_FLING:
Log.i("Main","用户在手指离开屏幕之前,由于滑了一下,视图仍然依靠惯性继续滑动");
Glide.with(getApplicationContext()).pauseRequests();
//刷新
break;
case SCROLL_STATE_IDLE:
Log.i("Main", "视图已经停止滑动");
Glide.with(getApplicationContext()).resumeRequests();
break;
case SCROLL_STATE_TOUCH_SCROLL:
Log.i("Main","手指没有离开屏幕,视图正在滑动");
Glide.with(getApplicationContext()).resumeRequests();
break;
}
}
当你想清除掉所有的图片加载请求时,这个方法可以帮助到你。
Glide.clear()
Glide支持多种磁盘缓存策略:
DiskCacheStrategy.NONE :不缓存图片
DiskCacheStrategy.SOURCE :缓存图片源文件
DiskCacheStrategy.RESULT:缓存修改过的图片
DiskCacheStrategy.ALL:缓存所有的图片,默认
.图片缓存机制
Glide缓存策略
Glide默认开启磁盘缓存和内存缓存,当然也可以对单张图片进行设置特定的缓存策略。
设置图片不加入到内存缓存
Glide
.with( context )
.load( eatFoodyImages[0] )
.skipMemoryCache( true )
.into( imageViewInternet )