读书人

从ImageView里取出图片之后后变换大小

发布时间: 2012-04-18 15:01:59 作者: rapoo

求助:从ImageView里取出图片之后后变换大小报错
异常为:
java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@4110bb30


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

Java code
 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);    }



[解决办法]
问题很明显啊,bitmap 对象已经被回收了。你在用的时候应该检查一下是否为null。
[解决办法]
BitMap 被系统强制回收掉了.
你这样强制的原尺度缩放 mBitmap = Bitmap.createScaledBitmap(mBitmap, 148, 30, true);
这样试了看看.

读书人网 >Android

热点推荐