1. ホーム
  2. android

[解決済み] Glideライブラリによる画像読み込み完了時のプログレスバーの表示設定

2022-12-06 07:05:50

質問

こんにちは、私は画像のための進行状況バーを持ちたいのですが、それは画像の読み込み中に表示されますが、画像の読み込みが完了すると、私はそれを消すように設定したいです。以前、私はこのためにPicassoライブラリを使用していました。しかし、私はGlideライブラリでそれを使用する方法がわからない。私は、いくつかのリソースの準備関数があることを考えましたが、私はそれを使用する方法がわかりません。誰か私を助けることができますか?

Picassoライブラリのコード

Picasso.with(mcontext).load(imgLinkArray.get(position).mUrlLink)
       .into(imageView, new Callback() {
           @Override
           public void onSuccess() {
               progressBar.setVisibility(View.GONE);
           }

           @Override
           public void onError() {
           }
        })
;

さて、Glideでこれを行うにはどうしたらよいでしょうか。

Glide.with(mcontext).load(imgLinkArray.get(position).mUrlLink)
     .into(imageView);

これでGlideで画像を読み込むことができるのですが、どうやって progressBar.setVisibility(View.GONE); を記述すればよいのでしょうか?

どのように解決するのですか?

質問がかなり古く、当時のglideの状況がわかりませんが、現在はリスナーで簡単にできます(正解として選ばれた回答では提案されていません)。

progressBar.setVisibility(View.VISIBLE);
Glide.with(getActivity())
     .load(args.getString(IMAGE_TO_SHOW))
     .listener(new RequestListener<String, GlideDrawable>() {
         @Override
         public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
             return false;
         }

         @Override
         public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
             progressBar.setVisibility(View.GONE);
             return false;
         }
     })
     .into(imageFrame)
;

アニメーションのようなものを自分で処理したい場合はtrueを、glideに処理させたい場合はfalseを返します。