我试图更好地了解 Android 如何处理图像以便更有效地使用内存。我有一个图像存储在其中Bitmap
,我正在使用ImageView.setImageBitmap()
它来显示它。现在的问题是 - 它会使用Bitmap
Ive 将来传递它,还是复制它并且Bitmap
在调用 to 之后不再使用我创建的setImageBitmap
?
假设它会继续引用Bitmap
我通过的,当Bitmap
通过BitmapFactory
usinginPurgeable
选项创建时它会如何表现?会ImageView
阻止Bitmap
暂时从内存中清除吗?它只会在ImageView
有View.VISIBLE
状态时发生,还是在View.GONE
和时发生View.INVISIBLE
?或者也许只有在ImageView
屏幕上可见?
还有一件事 - 查看 Android 源代码会发现编码的字节数据总是被复制到内存中(inInputShareable
目前被忽略)。它是否计入 android Java 应用程序的 16/24MB 内存限制?
谢谢