1、加载图片方式。
GlideApp.with(mContext).asDrawable()
.load(model.getPicUrl() + "?x-oss-process=style/optmize-min")
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.placeholder(R.drawable.cache)
.transition(DrawableTransitionOptions.withCrossFade()) //淡出淡入动画
.into(new ImageViewTarget<Drawable>(holder.imageView) {
@Override
protected void setResource(@Nullable Drawable resource) { if(resource!=null) {
holder.imageView.setImageDrawable(resource);
}
}
});
2、在列表中,如果视图不可见则销毁。
@Override
public void onViewRecycled(@NonNull BaseRecyclerViewHolder holder) {
super.onViewRecycled(holder);
ClassGoodsAdapter.ClassesGoodsHolder newHolder = null;
if(holder instanceof ClassGoodsAdapter.ClassesGoodsHolder) {
newHolder = (ClassGoodsAdapter.ClassesGoodsHolder)holder;
}
ImageView imageView = newHolder.imageView;
if (imageView!=null){
GlideApp.with(mContext).clear(imageView); //销毁
}
}
3、使用弱应用的方式。
SoftReference<Bitmap> bitmapSoftReference = new SoftReference<>(QRCodeUtil.createQRCodeBitmap(url,
800, 800,"UTF-8","H", "1", Color.BLACK, Color.WHITE));