Java Android 位图引用

标签 java android memory bitmap

我正在用 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/

相关文章:

java - 用于设置 SeparatorMenuItem 颜色的 CSS?

android - 如何从 Facebook SDK 4.5 中的 Android 应用程序获取用户的个人资料图片、主要电子邮件、Facebook 链接?

python - 使用 IPython 测量(最大)内存使用情况——类似于 timeit 但 memit

MapKit/SDWebImage 中的 iOS 内存不足警告

c - C中内存中的指针布局

Java 如何根据 HashMap 中的值返回前 10 项

java - 如何关闭子窗口?在 Selenium WebDriver 中 - 通过使用FunctionalClass

java - 带有 Gradle 的 Liquibase - changeLogFile 路径的愚蠢问题

java - 从 android 中的 Activity X 启动 Activity X

android - 具有 map View 的 Google map 和应用程序具有不同的当前位置