【问题标题】:Efficient Bitmap memory use in AndroidAndroid 中高效的位图内存使用
【发布时间】:2012-12-30 23:17:32
【问题描述】:

这是关于 Android 管理位图的方式的一般性问题。我想知道从内存的角度来看,为 ImageViews 提供正确大小的位图是否比 Android 必须缩放的大小不正确的位图更好。作为一个工作示例,如果我们假设 ImageView 1000 x 1000 并且我设置了一个 1024 x 1024 (FitCentre) 的位图,Android 将不得不缩放图像。那么它是否必须同时保留原始图像和缩放版本,或多或少地使内存使用量增加一倍?如果在替代方案中我向 1000 x 1000 ImageView 呈现 1000 x 1000 位图,是否只保留一张图像?只是一个问题,所以我知道处理位图的最有效方法,尤其是大图像。

【问题讨论】:

    标签: android memory bitmap imageview scaling


    【解决方案1】:

    Android 会缩放您的图像,但这会在您的图像加载到内存后发生,并且不会阻止臭名昭著的 OutofMemoryError 异常的发生。

    解决方案是在将图像加载到内存之前对其进行缩放,然后使用它。

    Android 文档详细解释了如何缓解此问题,以及如何有效地显示位图:http://developer.android.com/training/displaying-bitmaps/index.html

    【讨论】:

    • 感谢您的回复,但我认为它不能完全回答我的问题。我想了解如果我设置的图像不是视图大小,系统是否必须携带我提供的图像以及缩放版本,还是直接对 Canvas 进行缩放?
    猜你喜欢
    • 2013-07-10
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 2021-12-31
    • 1970-01-01
    • 2012-08-22
    相关资源
    最近更新 更多