アニメーション GIF は、コミュニケーションと自己表現を強化し、会話に動的な魅力的な要素を追加します。これにより、ユーザーは静止画像やテキストのみよりも効果的に感情、反応、ユーモアを表現できます。オンライン カルチャーで GIF が人気を集めているため、最新の機能と豊富なマルチメディア エクスペリエンスを期待するユーザーに関連性と魅力を維持するには、GIF を統合することが不可欠です。
画像読み込みライブラリを使用してアニメーション GIF を表示する
画像読み込みライブラリは、複雑な処理の多くを処理し、 下位互換性のあるサポートも組み込まれています。次の 次のコードは、 Coil 画像読み込みライブラリ:
GIF の Coil 依存関係を追加します。
implementation("io.coil-kt:coil-gif:2.6.0")
追加された ImageDecoder プラットフォームの両方を使用して、GIF 対応ローダを作成します。 を補完し、下位互換性を保つために Coil の GifDecoder を追加しました。
val gifEnabledLoader = ImageLoader.Builder(this)
.components {
if ( SDK_INT >= 28 ) {
add(ImageDecoderDecoder.Factory())
} else {
add(GifDecoder.Factory())
}
}.build()
Coil AsyncImage コンポーザブルで gifEnabledLoader を使用します。
AsyncImage(
imageLoader = gifEnabledLoader,
...
)
Android プラットフォームのサポートを使用してアニメーション GIF を表示する
AsyncImage(
model = request,
imageLoader = videoEnabledLoader,
contentDescription = null
)
Android 9 以降(API レベル 28)では、アニメーション GIF ファイルのサポートが組み込まれています。 Accompanist ライブラリを利用すれば、Jetpack Compose で これらのアニメーションをわずか数行のコードで再生できます。
描画可能ペインターをサポートするために、Accompanist ライブラリの依存関係を追加しました。
implementation("com.google.accompanist:accompanist-drawablepainter:0.35.0-alpha")
ImageDecoder を使用して、アニメーション GIF を AnimatedImageDrawable に読み込むメソッドを作成します。
private fun createAnimatedImageDrawableFromImageDecoder(context: Context, uri: Uri): AnimatedImageDrawable {
val source = ImageDecoder.createSource(context.contentResolver, uri)
val drawable = ImageDecoder.decodeDrawable(source)
return drawable as AnimatedImageDrawable
}
rememberDrawablePainter を
AnimatedImageDrawable
:
Image(
painter = rememberDrawablePainter(
drawable = createAnimatedImageDrawableFromImageDecoder(applicationContext, mediaUri)),
contentDescription = "animated gif"
)
イメージ キーボードやその他のリッチ コンテンツからの GIF ファイルのサポート
アニメーション GIF ファイルは、次のような多くの Android キーボードで一般的な機能です。
Google の Gboard をご活用ください。現在推奨される方法は
ステッカーやアニメーションが、インプット メソッドに由来するものか、別のもの由来のものか
OnReceiveContentListener
を使用することです。
サポートを実装する方法について詳しくは、リッチ コンテンツの受信をご覧ください。 アプリで GIF アニメーションやその他のリッチメディアを受信する場合。