【发布时间】:2015-01-26 13:28:36
【问题描述】:
我有一个卡片视图,它有一个自定义适配器,它使用 Picasso(在 onBindViewHolder(lazy load) 内部)将图像加载到它的目标中。 自定义行有一个按钮,单击该按钮会打开在宽视图中显示图像的片段,使用原始图像视图中的位图 (在片段之前,我使用在 onSucess() 中将毕加索回调为“真”的布尔值检查位图是否已完全加载到主图像视图中。直到那时我的按钮被禁用),例如:
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 。"
【问题讨论】:
标签: android-fragments canvas bitmap