2

我试图更好地了解 Android 如何处理图像以便更有效地使用内存。我有一个图像存储在其中Bitmap,我正在使用ImageView.setImageBitmap()它来显示它。现在的问题是 - 它会使用BitmapIve 将来传递它,还是复制它并且Bitmap在调用 to 之后不再使用我创建的setImageBitmap

假设它会继续引用Bitmap我通过的,当Bitmap通过BitmapFactoryusinginPurgeable选项创建时它会如何表现?会ImageView阻止Bitmap暂时从内存中清除吗?它只会在ImageViewView.VISIBLE状态时发生,还是在View.GONE和时发生View.INVISIBLE?或者也许只有在ImageView屏幕上可见?

还有一件事 - 查看 Android 源代码会发现编码的字节数据总是被复制到内存中(inInputShareable目前被忽略)。它是否计入 android Java 应用程序的 16/24MB 内存限制?

谢谢

4

1 回答 1

0

看看这篇文章:http: //developer.android.com/training/displaying-bitmaps/index.html

有一些有用的课程可以帮助你更好地理解 android 的内存管理

于 2014-01-21T09:38:12.960 回答