加载图像时增加RAM内存的使用

时间:2016-10-07 08:21:03

标签: android android-image

加载图片时,如果文件位于应用程序的R.drawable文件夹中,我们可以这样做:

ImageView imgView = (ImageView)itemView.findViewById(R.id.imgView);
imgView.setImageResource(R.drawable.led);

根据我使用的路径加载图像(路径可以是:imagePath ='/ storage_emulated/0/NewFolder/image.png':

ImageView imgView = (ImageView)itemView.findViewById(R.id.imgView);
Bitmap bitmap1 = BitmapFactory.decodeFile(data.getPath());
imgView.setImageBitmap(bitmap1);

这增加了大量使用的RAM内存,并且永远不会减少。

我做得对吗?它似乎不是这样。

3 个答案:

答案 0 :(得分:0)

如果您明确创建位图,请确保在不再需要时再循环使用:

bitmap.recycle()

通常在activity / fragment / viewmodel ondestroy方法上调用它。如果第一个Android自动执行此操作,但是当您显式创建位图时,它会保留在内存中。

答案 1 :(得分:0)

此类问题的完美解决方案是使用延迟加载

Lazy Loading Example

答案 2 :(得分:0)

你做了正确的事情将它作为一个单独的问题添加。我认为您可以使用Universal ImageLoader lib将本地或任何给定的图像网址加载到您的imageView。