求助:从ImageView里取出图片之后后变换大小报错

a107494639 2012-03-12 12:39:27
异常为:
java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@4110bb30


代码如下:功能是从一个ImageView取出一张图片,然后变换一下大小

ImageView oldImageView = (ImageView) currentView.findViewById(R.id.imageview);
oldImageView.setDrawingCacheEnabled(true);
Bitmap oldBitmap = oldImageView.getDrawingCache();
oldImageView.setDrawingCacheEnabled(false);
Bitmap newBitmap = exchangeBitmapSize(oldBitmap, 0.75f, 0.75f);
....

//变换图片的方法
public static Bitmap exchangeBitmapSize(Bitmap bitmap, float scaleX, float scaleY) {
int width = bitmap.getWidth();
int height = bitmap.getHeight();

Matrix matrix = new Matrix();
matrix.postScale(scaleX, scaleY);
//下面这行代码报错
return Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);
}

...全文
210 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yan_daoqiu 2012-03-15
  • 打赏
  • 举报
回复
BitMap 被系统强制回收掉了.
你这样强制的原尺度缩放 mBitmap = Bitmap.createScaledBitmap(mBitmap, 148, 30, true);
这样试了看看.
wang2019881117 2012-03-15
  • 打赏
  • 举报
回复
问题很明显啊,bitmap 对象已经被回收了。你在用的时候应该检查一下是否为null。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧