加载图像

从磁盘加载图像

使用 Image 可组合项在屏幕上显示图形。要从磁盘加载图像(例如:PNG、JPEG、WEBP)或矢量资源,请使用 painterResource API 及其图像引用。您无需了解资源的类型,只需在 Imagepaint 修饰符中使用 painterResource 即可。

DrawScope:

Image(
    painter = painterResource(id = R.drawable.dog),
    contentDescription = stringResource(id = R.string.dog_content_description)
)

为了确保您的应用 可访问,请为屏幕上的视觉元素提供 contentDescription。TalkBack 会朗读内容描述,因此您必须确保文本在朗读和翻译时具有意义。在上面的示例中,stringResource() 用于从 strings.xml 文件加载翻译后的内容描述。如果屏幕上的视觉元素纯粹用于视觉装饰,请将 contentDescription 设置为 null,以便屏幕阅读器忽略它。

如果您需要更低级别的 ImageBitmap 特定功能,则可以使用 ImageBitmap.imageResource() 加载位图。有关 ImageBitmaps 的更多信息,请阅读 ImageBitmap 与 ImageVector 部分。

Drawable 支持

painterResource 目前支持以下 Drawable 类型

从互联网加载图像

要从互联网加载图像,可以使用多个可用的第三方库来帮助您处理此过程。图像加载库为您完成了许多繁重的工作;它们处理缓存(因此您无需多次下载图像)和网络逻辑,以下载图像并在屏幕上显示它。

例如,要使用 Instacart 的 Coil 加载图像,请将库添加到您的 Gradle 文件中,并使用 AsyncImage 从 URL 加载图像

AsyncImage(
    model = "https://example.com/image.jpg",
    contentDescription = "Translated description of what the image contains"
)

一个由 Kotlin 协程支持的图像加载库(Instacart)。

一个快速高效的 Android 图像加载库,专注于流畅滚动(Google)。