Glideで画像切替え時に一瞬背景が表示される現象を抑制する方法 | Androidアプリ開発

GlideはAndroidアプリ開発において使用できる、極めて優秀な画像表示ライブラリのひとつです。

しかしながら、Glideをスライドショーのように画像を切り替えると、
遷移中に一瞬だけ背景が表示されて気になりました。

その対処方法を見つけたので記事に残しておきます。
スポンサーリンク

対処方法

通常、Glideでローカルファイルの画像を表示するコードは以下です。
File file = new File("XXXXXXXXXX");
Uri uri = Uri.fromFile(file);
final ImageView iv = findViewById(R.id.IV);
        
Glide.with(activity)
    .load(uri)
    .into(iv);
これで再度同じようなコードで画像を切り替えると、一瞬だけ背景が表示されてしまいます。

コードを実施してみると分かるのですが、
Glideを使用せずにImageViewにリソースを設定した場合は背景が表示されません。

よって、背景が表示される現象を回避するためには、
以下のようにGlideでリソースを読み込んだ後に、ImageViewにリソースをセットするようにコードを書き換えます。
//onResourceReadyでリソース読み込み完了後の処理を実装できる
Glide.with(this)
        .load(uri)
        .into(new SimpleTarget<Drawable>() {
            @Override
            public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {
                iv.setImageDrawable(resource);
            }
        });
こうすることで、背景が一瞬だけ表示される現象を回避することができます。

注意点

この方法を利用できるのは通常の画像ファイルのみで、GIFファイルには使用することができません。

GIF画像で前述のコードを実行しても、クラッシュしたりすることはないのですが、
GIFのアニメーションが描画されず、最初の1フレームのみがImageViewにセットされてしまいます。
スポンサーリンク

まとめ

この記事ではGlideにおいて画像切り替え時に一瞬だけ背景が表示されてしまう現象を回避する方法を紹介しました。

同じ現象で困っている方がおりましたら、ご参考にしてください。
Androidアプリ開発
スポンサーリンク
Androidアプリ開発 記事一覧
Androidアプリ開発 記事一覧
Androidアプリ開発の記事一覧を以下にまとめています。
良かったらご覧ください。

Androidアプリ開発 記事一覧
カテゴリ広告: Androidアプリ開発
スポンサーリンク: Androidアプリ開発を個人レッスンで学ぶなら...?
Androidアプリ開発は一人で学んでいても限界があります。
そこでオススメなのがオンラインでAndroidアプリ開発を学べる「コードキャンプ」。
個人レッスンで丁寧に教えてくれます。

無料レッスン体験も可能なので、まずは無料体験から試してみてはいかがでしょうか?

Androidアプリ開発個人レッスン
一般広告: モバイルバッテリー
スポンサーリンク
Aresei-note
タイトルとURLをコピーしました