アニメーション GIF はコミュニケーションと自己表現を強化し、 会話に魅力的な要素を配置して、ユーザーが感情を表現できるようにします。 リアクション、ユーモアを、静止画像やテキストだけより効果的に使用できます。 オンライン カルチャーで GIF が人気を集めているため、最新の機能と豊富なマルチメディア エクスペリエンスを期待するユーザーに関連性と魅力を維持するには、GIF を統合することが不可欠です。
画像読み込みライブラリを使用してアニメーション GIF を表示する
画像読み込みライブラリは、複雑な処理の多くを処理し、 下位互換性のあるサポートも組み込まれています。次の 次のコードは、 Coil 画像読み込みライブラリ:
GIF の Coil 依存関係を追加します。
implementation("io.coil-kt:coil-gif:2.6.0")
Android 9(API レベル 28)で追加されたプラットフォームの ImageDecoder と、下位互換性を確保するための Coil の GifDecoder の両方を使用して、GIF 対応ローダを作成します。
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 ファイルは、Google の Gboard など、多くの Android キーボードで人気のある機能です。入力方法からのものでも、別のアプリからのものでも、あらゆる種類のステッカーやアニメーションをサポートするには、現在 OnReceiveContentListener を使用することをおすすめします。
GIF アニメーションなどのリッチ メディアの受信をアプリでサポートする方法については、リッチ コンテンツを受信するをご覧ください。