我将从相机检索到的每个帧转换为位图,并将其显示在ImageView上,但我发现imageView包含旋转的位图,所以我想旋转位图90度来设置它对。要实现这一目标, 我写了下面的代码将旋转位图90度,但在运行时我收到位图旋转导致错误
bitmap size exceeds 32bits
我提到一些岗位来解决这个问题,其中一个建议回收使用的每个位图,但它并没有解决问题。 请让我知道为什么我得到这个错误以及如何解决它?
代码:
@Override
protected void onProgressUpdate(Bitmap... values) {
super.onProgressUpdate(values);
Bitmap b = values[0];
Matrix matrix = new Matrix();
matrix.postScale(b.getWidth()-10, b.getHeight()-10);
matrix.postRotate(90);
Bitmap resizedBitmap = Bitmap.createBitmap(b, 0, 0, b.getWidth(), b.getHeight(), matrix, true);
mIVEdges.setImageBitmap(resizedBitmap);
b.recycle();
}
你真的需要'onProgressUpdate旋转图像()'不'doInBackground()' ?如果 - 是 - 可能是'publishProgress()'调用经常创建的许多新的'resizedBitmap'。 –