【问题标题】:Android pre-honeycomb bitmap managementAndroid pre-honeycomb 位图管理
【发布时间】:2012-12-13 07:52:12
【问题描述】:

对于我的应用程序,我需要加载一个有时可能非常大的位图。即使在 Galaxy S2 等设备上,我也会遇到 OutOfMemory 错误。我四处寻找,发现我需要回收位图。

之前我使用 BitmapFactory 加载位图,创建一个新的缩放位图,并在一行中创建一个 bitmapdrawable。通过这样做,我是否将两个位图加载到内存中?我应该创建初始位图,然后在创建缩放位图后回收它吗?

如果活动会频繁启动,我应该将位图加载一次到静态字段还是应该每次都回收并重新创建?

谢谢

【问题讨论】:

    标签: android memory bitmap


    【解决方案1】:

    将流程拆分为多个步骤。如果您正在根据可用屏幕空间测量位图,然后加载缩放的位图,则可以执行第一步,而无需使用 BitmapFactory.Options.inJustDecodeBounds 将位图加载到内存中。这将为您提供一个没有像素数据但具有宽度和高度属性的位图对象。然后使用它使用 BitmapFactory.Options.inSampleSize 解码您的缩放位图。

    谷歌这些术语,你会发现大量的示例代码就是这样做的。是的,当您完成位图时,别忘了回收利用。

    https://www.google.com/#q=BitmapFactory+Options+inJustDecodeBounds+inSampleSize

    【讨论】:

      猜你喜欢
      • 2013-09-22
      • 2011-10-02
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      相关资源
      最近更新 更多