AndroidでGif画像を再生する(Java,Kotlin)

今回はJavaとKotlinでのアプリ開発でGifを再生する方法を紹介します。

Web上で調べてみると様々な方法がありますが

調べて試してみた結果このやり方が最もシンプルだと感じました。

Glide

今回Gifを再生するためにGlideライブラリを使います。

https://github.com/bumptech/glide

build-gradleに追加

まずはbuild-gradleにGlideを追加します。

implementation 'com.github.bumptech.glide:glide:3.7.0'

ネット上のURLからGIFを使う方はManifestに以下も追加しておきましょう。

<uses-permission android:name="android.permission.INTERNET" />

ImageViewを追加

GifはImageViewで再生させるので

あらかじめImageViewを追加しておきます。

<ImageView
    android:id="@+id/image_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

Gifをrawファイルに入れておく

drawble/rawの中にGif画像を入れておいてください。

URLを用いる場合はこの手順は必要ないです。

ImageViewにGifをセット

実際にGifをImageViewにセットします。

//ローカルのGif画像を使う場合
ImageView matchImage = findViewById(R.id.image_view);
GlideDrawableImageViewTarget target = new GlideDrawableImageViewTarget(matchImage);
Glide.with(context).load(R.raw.gif).into(target);

//インターネットのGif画像を使う場合
ImageView matchImage = findViewById(R.id.image_view);
String gifUrl = "https://~~~.gif";
Glide.with(this).load(gifUrl).into(matchImage);

連続再生問題

このGlideライブラリでは標準でGifが無限再生されるようになっています。

もしこれを止めたい場合は以下のように変更してください。

ImageView matchImage = findViewById(R.id.image_view);
//matchImageの次に繰り返し数を指定
GlideDrawableImageViewTarget target = new GlideDrawableImageViewTarget(matchImage,1);
Glide.with(context).load(R.raw.gif).into(target);

第2引数にはloop回数が入るので

回数指定したいのならこの数字を変更すればできます。

他にもGlideのlistenerにsetLoopCountを使う方法もありますが

この方法が最も可読性が高いのでおすすめです。

コメントを残す

メールアドレスが公開されることはありません。