当前位置: 代码迷 >> Android >> 从ImageView里取出图片之后后变换大小报错
  详细解决方案

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

热度:58   发布时间:2016-05-01 21:50:52.0
求助:从ImageView里取出图片之后后变换大小报错
异常为:
 java.lang.RuntimeException: Canvas: trying to use a recycled bitmap [email protected]


代码如下:功能是从一个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); 
 这样试了看看.
  相关解决方案