載入圖片

從磁碟載入圖片

使用 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() 載入點陣圖。如要進一步瞭解 ImageBitmap,請參閱「ImageBitmap 與 ImageVector」一節。

可繪項目支援

painterResource 目前支援下列可繪項目類型:

從網際網路載入圖片

從網際網路載入圖片時,有幾個第三方程式庫可協助您處理這項程序。圖片載入程式庫可為您處理大部分的繁瑣作業。這類程式庫可同時處理快取 (讓您無需多次下載圖片) 和網路邏輯,以便下載並在螢幕上顯示圖片。

舉例來說,如要透過 Instacart 使用 Coil 載入圖片,請將程式庫新增至 Gradle 檔案,然後使用 AsyncImage 從網址載入圖片:

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

由 Kotlin 協同程式 (Instacart) 支援的圖片載入程式庫。

快速又有效率的 Android 圖片載入程式庫,旨在提供流暢的捲動瀏覽體驗 (Google)。