从服务器下载图像到图像视图时显示进度

Show Progress while downloading image from server into imageview

我是 ListView 并想显示进度,直到图像未使用 Picasso 库从服务器下载到 ImageView,在将图像从服务器下载到 ImageView 时仍然显示 ic_launcher 可绘制,但如果我想显示进度

    Picasso.with(context)
    .load(imageURL)
    .transform(transformation)
    .placeholder(R.drawable.ic_launcher)
    .error(R.drawable.ic_launcher)
    .into(viewHolder.imageView);

我想你可以使用 Picasso 的 Target Class

Target t = new Target() {
 @Override
 public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
         //hideProgress
}

@Override
public void onBitmapFailed(Drawable errorDrawable) {
           //hideProgress
}

 @Override
  public void onPrepareLoad(Drawable placeHolderDrawable) {

        //lshow Progress
 }
};

 Picasso.with(context)
.load(strImage)
.transform(transformation)
.placeholder(R.drawable.nothing_found)
.error(R.drawable.nothing_found)
.into(t);

在您的 xml 文件中,您必须将进度条放在图像上方,设置进度条可见性,并在您的代码中

Picasso.with(context)
       .load(file)
       .into(imageView, new Callback() {
           @Override
           public void onSuccess() {
               progressbar.setVisibility(View.GONE);
           }
       });

下载图像时,您必须 setVisibility(View.GONE) 到进度条

将 ProgressBar 添加到放置 ImageView 的 XML 中,或者以编程方式进行。那么你可以这样做:

 ProgressBar progressBar ; //initialize it as you dud with the imageView
    progressBar.setVisibility(View.VISIBLE);
    Picasso.with(context)
            .load(imageURL)
            .transform(transformation)
            .placeholder(R.drawable.ic_launcher)
            .error(R.drawable.ic_launcher)
            .into(viewHolder.imageView, new Callback() {
                @Override
                public void onSuccess() {
                    progressBar.setVisibility(View.GONE);
                }
                @Override
                public void onError() {
                }
            });

在过去的 Google 泰国开发者峰会上,Google 向我们介绍了由 bumptech 开发的名为 Glide 的图像加载程序库 Android 作为 Google 推荐的库.到目前为止,它已经在许多 Google 个开源项目中使用,包括 Google I/O 2014 年正式应用。

它成功地引起了我的兴趣。我花了一晚上的时间玩弄它,并决定在此博客中分享我的经验post。首先,我必须说它看起来与毕加索 90% 相似。更准确地说,我认为它是毕加索的复制品。

反正细节上还是很不一样的。您将了解如何操作。

http://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en

mProgressDialog = new ProgressDialog(getActivity());
        mProgressDialog.setMessage("Wait a moment, loading image...");
        mProgressDialog.setCanceledOnTouchOutside(false);
        mProgressDialog.setCancelable(false);
        mProgressDialog.show();

        Picasso.with(getActivity()).load(mImagePath).into(mImageView, new Callback() {
            @Override
            public void onSuccess() {
                mProgressDialog.dismiss();
            }

            @Override
            public void onError() {
                mProgressDialog.dismiss();
                Toast.makeText(getActivity(), "Download failed", Toast.LENGTH_LONG).show();
            }
        });