AndroidでGlideを使ってGif画像を再生したい【Kotlin,Java】

今回は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引数を指定してあげれば

ループ回数を指定することが可能です!

最後までお読みいただきありがとうございました!

コメントを残す

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