我正在用 Java 创建这个 Android 项目。但是,我有点想知道某些位图方法的引用会走多远。
我有一个原始位图,就像:
Bitmap originalBitmap = BitmapFactory.decodeResource(resources, bitmapID);
然后我将它发送到一个基本类的构造函数中的对象:
class Test
{
Bitmap memberBitmap;
Test(Bitmap b)
{
memberBitmap = b;
}
}
到目前为止,我知道 memberBitmap 仍然是对 originalBitmap 的引用。但我想做的基本上是使用以下方法调整此位图的大小:
memberBitmap = Bitmap.createScaledBitmap(memberBitmap, newWidth, newHeight, filter);
我现在是在内存中存储了一个新的位图还是更改了原始位图?
如果是这样我创建了一个新的位图,是否会有任何更改以使其更新原始位图?
喜欢:
memberBitmap.createScaledBitmap(memberBitmap, newWidth, newHeight, filter);
最佳答案
根据该 API 的声音,它可能正在内存中创建一个新的位图。您可以在构造函数运行后通过在两个对象上打印出 toString()
来检查这一点,并查看它们的内存位置是否相同。
对于第二个问题:更改originalBitmap
以引用新的Bitmap
。
关于Java Android 位图引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16323513/