Glide 的一些使用
1、加载一些图片到圆形的控件中时,如果设置了placeholder
第一次显示placeholder,第二次才显示图片。
解决方法:
要调用dontAnimate()这个方法,不使用Glide的默认动画。
Glide.with(mContext)
.load(url)
.dontAnimate()
.placeholder(R.drawable.ic_empty)
.into(circleImageview);
2、wifi和移动流量下加载数据模式改变:
-
使用网络加载
Glide.with(imageView.getContext()).load(url) .dontAnimate() .placeholder(R.drawable.ic_place_holder_small) .error(R.drawable.ic_error_small) .into(imageView);
-
使用缓存(如果有的话)
Glide.with(imageView.getContext()).using(streamModelLoader).load(url) .dontAnimate() .placeholder(R.drawable.ic_place_holder_small) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(imageView); private static StreamModelLoader streamModelLoader=new StreamModelLoader<String>() { @Override public DataFetcher<InputStream> getResourceFetcher(final String model, int i, int i1) { return new DataFetcher<InputStream>() { @Override public InputStream loadData(Priority priority) throws Exception { throw new IOException(); } @Override public void cleanup() { } @Override public String getId() { return model; } @Override public void cancel() { } }; }};
3、加载Gif图片(gif图片暂用内存过大,小图情况下加载静态的图)
/**
* 用于干货item,将gif图转换为静态图
*/
public static void displayGif(String url, ImageView imageView) {
Glide.with(imageView.getContext()).load(url)
.asBitmap()
.dontAnimate()
.placeholder(R.drawable.ic_place_holder_small)
.error(R.drawable.ic_error_small)
// .skipMemoryCache(true) //跳过内存缓存
// .crossFade(1000)
// .diskCacheStrategy(DiskCacheStrategy.SOURCE)// 缓存图片源文件(解决加载gif内存溢出问题)
// .into(new GlideDrawableImageViewTarget(imageView, 1));
.into(imageView);
}
4recyclerview 中优化加载,滑动时不加载图片
recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
// SCROLL_STATE_FLING; //屏幕处于甩动状态
// SCROLL_STATE_IDLE; //停止滑动状态
// SCROLL_STATE_TOUCH_SCROLL;// 手指接触状态
if(newState==RecyclerView.SCROLL_STATE_IDLE){
Glide.with(context).resumeRequests();
}else {
Glide.with(context).pauseRequests();
}
}
});
-
glide重新加载图片
Glide.with(context).resumeRequests()
-
glide暂停加载图片
Glide.with(context).pauseRequests()