RuntimeException:Canvas:尝试使用循环位图android.graphics.Bitmap

时间:2015-01-26 13:28:36

标签: android-fragments canvas bitmap

我有一个卡视图,它有一个自定义适配器,它使用Picasso(在onBindViewHolder(延迟加载)内)将图像加载到其目标中。 自定义行有一个按钮,当单击该按钮时,将打开片段,在宽视图中显示图像,使用原始imageview中的位图 (在片段之前我检查位图是否在主映像中完全加载,使用毕加索回调中的布尔值为onSucess()中的'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:Canvas:尝试使用循环位图android.graphics.Bitmap。”

2 个答案:

答案 0 :(得分:0)

在您尝试回收或设置为由 Picasso 加载的图像为空时,会出现此异常,这意味着 Picasso 库不会指望加载图像通过它来回收,当它试图加载时抛出异常。希望这个解决方案适合你

答案 1 :(得分:-1)

尝试用Glide替换毕加索