投稿が遅くなり申し訳ありません。
今回はAndoridでGif画像を再生する方法について述べていきます。
##ライブラリの使用
AndoridにはGif画像再生のためのライブラリがいくつか用意されています。
しかもImageView内で再生できるので使いやすいです。
今回はその中でもよく使われるライブラリの1つglideを紹介します!
###1.build.gradleのdependenciesにglideを追加
まずはライブラリを追加しましょう!
implementation 'com.github.bumptech.glide:glide:3.7.0'
もしインターネット上の画像を使うのであれば
Manifest.xmlに以下も追加しておきましょう!
<uses-permission android:name="android.permission.INTERNET" />
###2.ImageViewを追加
Gif画像を貼り付けたいところにImageViewを指定しましょう!
<ImageView
android:id="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
URLではなくローカルに落としたGif画像を使いたい方は
drawable/rawにGif画像を入れておきましょう!
###3.ImageViewにGif画像をセット
ここでGif画像をセットします
//ローカルの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が永遠にloopし続けます。
ではこれを止めるにはどうすればいいのでしょうか?
調べてみるとlistenerで
resource.setLoopCount(1);
これを入力すれば1回だけ再生になるとありましたが
実際にやってみてもできませんでした。
ですが他にも良い方法があり、以下のように変更するとできました!
ImageView matchImage = findViewById(R.id.image_view);
GlideDrawableImageViewTarget target = new GlideDrawableImageViewTarget(matchImage,1);
Glide.with(context).load(R.raw.gif).into(target);
一見何が変わったかわからないかもしれません。
GlideDrawableImageViewTarget(matchImage,1);
ここに1が加わっています!
ここの第2引数にはloop回数が入ります!
なので第2引数を指定してあげればループ回数を指定することが可能です!
今回は以上です!最後までお読みいただきありがとうございました!