异常为:
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);
}
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);
}
你这样强制的原尺度缩放 mBitmap = Bitmap.createScaledBitmap(mBitmap, 148, 30, true);
这样试了看看.