我有这个问题,当我尝试为另一个创建一个新的位图时, 像这样:
first_data = Bitmap.createBitmap(data, 0, 0, data.getWidth() / 2,data.getHeight());
second_data = Bitmap.createBitmap(data, data.getWidth() / 2, 0, data.getWidth() / 2,
data.getHeight() );
我遇到了OutOfMemoryException ...
如果我只使用原始的完整图像,我不会遇到这个问题,我认为Bitmap.createBitmap()会复制原始的第一张图像。 有一种方法可以指明我不想复制它吗? 非常感谢!
答案 0 :(得分:1)
不幸的是,似乎:
如果您的原始位图是不可变的(isMutable()== false),那么会鼓励它基于相同的字节数组返回一个对象,而不是复制它。
要获取不可变位图,可以尝试createBitmap(Bitmap)并丢弃对原始位图的所有引用(和/或使用recycle())?