在 Android 应用中加载位图比较复杂,原因有很多种:
- 位图很容易就会耗尽应用的内存预算。例如,Pixel 手机上的相机拍摄的照片最大可达 4048x3036 像素(1,200 万像素)。如果使用的位图配置为
ARGB_8888
,这是 Android 2.3(API 级别 9)及更高版本的默认设置,将单张照片加载到内存大约需要 48 MB 内存(4048*3036*4 字节)。如此庞大的内存需求可能会立即耗尽该应用的所有可用内存。 - 在界面线程中加载位图会降低应用的性能,导致响应速度变慢,甚至会导致系统显示 ANR 消息。因此,在使用位图时,必须正确地管理线程处理。
- 如果您的应用将多个位图加载到内存中,您需要娴熟地管理内存和磁盘缓存。否则,应用界面的响应速度和流畅性可能会受到影响。
在大多数情况下,我们建议您使用 Glide 库获取、解码和显示应用中的位图。在处理这些任务以及与位图和 Android 上的其他图片相关的其他任务时,Glide 会将大部分的复杂工作抽象出来。如需了解如何使用和下载 Glide,请访问 GitHub 上的 Glilt 代码库。
您也可以选择直接使用 Android 框架中内置的较低级 API。如需详细了解如何执行此操作,请参阅高效加载较大位图、缓存位图和管理位图内存。