处理位图

尝试 Compose 方式
Jetpack Compose 是 Android 推荐的界面工具包。了解如何在 Compose 中显示图形。

在 Android 应用中加载位图之所以棘手,原因有很多

  • 位图非常容易耗尽应用的内存预算。例如,Pixel 手机的摄像头拍摄的照片分辨率最高可达 4048x3036 像素(1200 万像素)。如果使用的位图配置为 ARGB_8888(Android 2.3 (API 级别 9) 及更高版本的默认配置),那么将单张照片加载到内存中大约需要 48MB 的内存(4048*3036*4 字节)。如此巨大的内存需求可能会立即耗尽应用可用的所有内存。
  • 在 UI 线程上加载位图会降低应用的性能,导致响应缓慢甚至出现 ANR(应用无响应)提示。因此,在处理位图时,妥善管理线程至关重要。
  • 如果应用需要将多个位图加载到内存中,则需要巧妙地管理内存和磁盘缓存。否则,应用界面的响应速度和流畅度可能会受到影响。

对于大多数情况,我们建议您使用 Glide 库来获取、解码和显示应用中的位图。Glide 抽象化处理了这些任务以及 Android 中处理位图和其他图像时涉及的其他复杂操作。有关使用和下载 Glide 的信息,请访问 GitHub 上的 Glide 代码库

您也可以选择直接使用 Android 框架内置的底层 API。有关此操作的详细信息,请参阅高效加载大位图缓存位图以及管理位图内存

更多资源