处理位图

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

在您的 Android 应用中加载位图很棘手,原因有很多

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

在大多数情况下,我们建议您使用 Glide 库在您的应用中获取、解码和显示位图。Glide 将处理这些任务以及与在 Android 上处理位图和其他图像相关的其他任务的大部分复杂性抽象化。有关使用和下载 Glide 的信息,请访问 GitHub 上的 Glide 存储库

您也可以选择直接使用 Android 框架中内置的低级 API。有关如何执行此操作的更多信息,请参阅 有效加载大型位图缓存位图管理位图内存

更多资源