Android fragments RuntimeException:画布:尝试使用回收的位图android.graphics.bitmap

Android fragments RuntimeException:画布:尝试使用回收的位图android.graphics.bitmap,android-fragments,canvas,bitmap,Android Fragments,Canvas,Bitmap,我有一个卡片视图,它有一个自定义适配器,它使用毕加索(在onBindViewHolder(惰性加载)中)将图像加载到目标中。 自定义行有一个按钮,单击该按钮可打开片段,该片段使用原始imageview中的位图在广角视图中显示图像 (在片段中之前,我使用毕加索在onSuces()中将布尔值回调为“true”,检查位图是否完全加载到主图像视图中。在此之前,我的按钮处于禁用状态),如: BindViewHolder: Picasso.w

我有一个卡片视图,它有一个自定义适配器,它使用毕加索(在onBindViewHolder(惰性加载)中)将图像加载到目标中。 自定义行有一个按钮,单击该按钮可打开片段,该片段使用原始imageview中的位图在广角视图中显示图像 (在片段中之前,我使用毕加索在onSuces()中将布尔值回调为“true”,检查位图是否完全加载到主图像视图中。在此之前,我的按钮处于禁用状态),如:

                BindViewHolder:

                Picasso.with(context)
            .load(cl.getUrlPhoto())
            .resize(500, 500)
            .error(R.drawable.images)
            .into(cardViewHolder.urlPhoto, new Callback() {
                @Override
                public void onSuccess() {
                    cardViewHolder.imgL=true;
                    cardViewHolder.fab.setEnabled(true);
                    cardViewHolder.pb_b.setVisibility(View.INVISIBLE);
                }

                @Override
                public void onError() {
                    cardViewHolder.imgL=false;
                    cardViewHolder.fab.setEnabled(false);
                    cardViewHolder.pb_b.setVisibility(View.GONE);
                }
            });
(我在这里检查布尔值是否为真,然后执行这部分代码)加载的片段部分:

              imageView.buildDrawingCache(true);
              Bitmap bitmap = imageView.getDrawingCache(true);
              BitmapDrawable bitmapDrawable = (BitmapDrawable)                                  
              imageView.getDrawable();                
              bitmap1 = bitmapDrawable.getBitmap();
              scaleImageView.setImageBitmap(bitmap1);
。但有时在滚动时,图像仍在加载或加载,或只是点击查看完整图像2-3次,它崩溃并给出错误信息


“RuntimeException:画布:尝试使用回收的位图android.graphics.bitmap。”

当您尝试回收或将毕加索加载的图像设置为空时,会引发此异常,这意味着毕加索库不希望回收它加载的图像,并且当它尝试加载时会引发异常。希望此解决方案适合您

尝试用Glide替换毕加索

这太短了……您已经解释得更清楚了