美文网首页
Glide 图片加载报错:java.lang.ClassCast

Glide 图片加载报错:java.lang.ClassCast

作者: 心中有梦丶身边有你 | 来源:发表于2019-02-26 14:04 被阅读0次

在自定义ImageView加载的时候报错了:
问题代码 :

  Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();

解决方式:在Glide加载图片时加上.asBitmap()

Glide.with(context).load().asBitmap().error(R.mipmap.ic_lunch).into(image);

另外附上经常出现的报错:
1, CircleImageView 使用Glide 加载时,设置placeholder,导致图片不显示

// 解决:加上.dontAnimate()
.placeholder(R.mipmap.mine_placehold)
.dontAnimate()

2, 使用Glide 加载的图片,获取bitmap转为为string是报错

java.lang.ClassCastException: com.bumptech.glide.request.target.SquaringDrawable cannot be cast to android.graphics.drawable.BitmapDrawable

// 转化代码如下
// 获取imageview的图片,并且转化为可传递的string

 public static String GetStringByImageView(ImageView imageView){
     // 从ImageView得到Bitmap对象
     Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
     // 把Bitmap转码成字符串
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
     bitmap.compress(Bitmap.CompressFormat.PNG, 50,baos);
     String imageBase64 = new String (Base64.encode(baos.toByteArray(), 0));
     return imageBase64;
 }

// 错误分析 :
通过Glide加载的image--
imageView.getDrawable() 获取的Drawable 类型不是BitmapDrawable
而是 GlideBitmapDrawable
因此类型错误导致

// 解决:加上.asBitmap()
.load(imageURLString)
.asBitmap()

3, 使用Glide 加载图片,经常报错 You cannot start a load for a destroyed activity
// 解决:为了一劳永逸我直接获取了application的context用来加载,一劳永逸

// 如下(KapApplication 是自定义的:public class KapApplication extends Application)
// Glide 帮助类
public class KapGlideHelper {
    /**
     * 用Application context 防止出现
     * */
    // 创建gradle
    public static RequestManager CreatedGlide(){
       return Glide.with(KapApplication.getContext());
    }
    // 取消gradle请求
    public static void PaauseRequests(){
        Glide.with(KapApplication.getContext()).pauseRequests();
    }
}

// 使用:

KapGlideHelper.CreatedGlide().load(imageURLString)
                .asBitmap()
                .placeholder(R.mipmap.mine_placehold)
                .into(imageView);
// 缺点是:无法以activity为单位控制网络请求~~

原文:https://blog.csdn.net/onceing/article/details/73277016

相关文章

网友评论

      本文标题:Glide 图片加载报错:java.lang.ClassCast

      本文链接:https://www.haomeiwen.com/subject/smvoyqtx.html