我在模拟器和高分辨率屏幕的Android手机上都有这个问题:
09-24 21:59:01.772: ERROR/AndroidRuntime(341): FATAL EXCEPTION: Thread-8
09-24 21:59:01.772: ERROR/AndroidRuntime(341): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
原因是因为我使用矩阵翻转位图(面向左,面向右) 我在启动时执行此操作并保存生成的Bitmap,因此我不会不必要地一遍又一遍地重新创建它。
但是在手机和模拟器AVD上显示的显示器比我的普通手机大,它会引发错误。
以下是方法:
private Bitmap Flip(Bitmap asset) {
Matrix mat = new Matrix();
mat.postScale(-1F, 1F);
int width = asset.getWidth();
int height = asset.getHeight();
return Bitmap.createBitmap(asset, 0, 0, width, height, mat, true);
}
这似乎是一个基本的转变,为什么它不能翻转位图? 它只有2kb。
有人可以建议另一种方法来获取位图的翻转版本吗?