LoginSignup
3
0

More than 3 years have passed since last update.

AndoridアプリでGif画像を再生したい(Java,Kotlin)

Posted at

投稿が遅くなり申し訳ありません。
今回は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引数を指定してあげればループ回数を指定することが可能です!

今回は以上です!最後までお読みいただきありがとうございました!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0