画像の読み込み

ディスクから画像を読み込む

Image コンポーザブルを使用して、画面にグラフィックを表示します。ディスクから画像(PNG、JPEG、WEBP など)やベクター リソースを読み込むには、painterResource API を画像参照とともに使用します。アセットのタイプを認識する必要はありません。Image 修飾子または paint 修飾子で painterResource を使用するだけです。

DrawScope:

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

アプリにユーザー補助機能を実装にするには、画面上の視覚要素に contentDescription を指定します。TalkBack ではコンテンツの説明が読み上げられます。読み上げや翻訳の際には、テキストを意味のあるものにする必要があります。上記の例では、stringResource() を使用して、翻訳されたコンテンツの説明を strings.xml ファイルから読み込んでいます。視覚的装飾のためだけに画面上に視覚要素を使用する場合は、スクリーン リーダーで無視されるように、contentDescriptionnull に設定します。

下位レベルの ImageBitmap 固有の機能が必要な場合は、ImageBitmap.imageResource() を使用してビットマップを読み込みます。ImageBitmaps について詳しくは、ImageBitmap と ImageVector のセクションをご覧ください。

ドローアブルのサポート

painterResource は現在、次の種類のドローアブルをサポートしています。

インターネットから画像を読み込む

インターネットから画像を読み込む際には、この処理に役立つサードパーティ ライブラリをいくつか利用できます。画像読み込みライブラリでは、キャッシュ保存(画像を何度もダウンロードする必要がありません)と、画像をダウンロードして画面に表示するネットワーク ロジックの両方により、負荷の高い処理を行います。

たとえば、Instacart から Coil を使用して画像を読み込むには、Gradle ファイルにライブラリを追加し、AsyncImage を使用して URL から画像を読み込みます。

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

Kotlin コルーチン(Instacart)を基盤とする画像読み込みライブラリ。

滑らかなスクロールを重視した、Android 向けの高速かつ効率的な画像読み込みライブラリ(Google)。