我正在努力更好地理解Android如何处理图像,以便更有效地使用内存。我有一个存储在Bitmap
中的图片,我正在使用ImageView.setImageBitmap()
来显示它。现在的问题是 - 它是否会使用Bitmap
我将来通过它,或者它正在制作它的副本,而我创建的Bitmap
在调用之后不再使用setImageBitmap
?
假设它会继续引用我已经通过的Bitmap
,那么当使用Bitmap
选项通过BitmapFactory
创建inPurgeable
时,它会如何表现? ImageView
会阻止Bitmap
暂时从内存中清除吗?是仅在ImageView
具有View.VISIBLE
州,或者View.GONE
和View.INVISIBLE
时才会发生?或者只有在ImageView
在屏幕上可见时才会显示?
还有一件事 - 通过Android源代码查看,编码的字节数据总是被复制到内存中(inInputShareable
当前被忽略)。它是否计入Android Java应用程序的16 / 24MB内存限制?
由于
答案 0 :(得分:0)
看一下这篇文章:http://developer.android.com/training/displaying-bitmaps/index.html
有一些有用的课程可以帮助你更好地理解android的内存管理