1

我正在开发一个带有大图像的各种片段活动的应用程序。我不想跨活动将这些图像保存在内存中,所以我使用 setImageBitmap(null) 取消绑定图像。并在 onResume() 中恢复恢复图像。但是,如果应用程序具有完整参考,为什么必须对 xml 中设置的图像做同样的事情呢?在离开活动时强制片段中的所有图像不保留在堆中并在从其他活动返回时强制重新创建视图的最佳方法是什么?为什么我设置“setoffscreenPageLimit(1)”并且三个片段的图像总是留在堆中?3 是最小值?我正在使用 fragmentStatePagerAdapter。

谢谢!

4

2 回答 2

1

使用“setoffscreenPageLimit(1)”,您可以告诉 ViewPager 也将下一个 Fragment 加载到内存中。我的意思是,加载当前Fragment左右的Fragment。

并且不要尝试设置“setoffscreenPageLimit(0)”,是行不通的。

-编辑-

此外,您可以像这样以编程方式设置图像,而不是通过 xml 设置它们。

ImageView imageView = (ImageView)findViewById(R.id.imageview);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.icon);
imageView.setImageBitmap(bitmap);
于 2013-08-27T08:12:52.370 回答
0

最好的方法是在不再使用位图时回收它们。

if(bitmap!=null)
   {
      bitmap.recycle();
      bitmap=null;

   }

如果您想让您的一天过得愉快,请观看此官方视频的前 20 分钟 - http://www.youtube.com/watch?v=_CruQY55HOk

于 2013-08-30T06:56:44.180 回答