今回はAndroidでGif画像を再生する
ライブラリGlideの紹介をしていきます!
目次
Glideライブラリ
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画像を貼り付けたいxmlに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引数を指定してあげれば
ループ回数を指定することが可能です!
最後までお読みいただきありがとうございました!