当使用Picasso显示占位符时,如何重新显示进度栏?

时间:2014-08-10 09:08:31

标签: java android android-listview android-asynctask picasso

我有一个listView,每个项目都有一个图像。

每当图片尚未加载到每个项目中时,我想要一个progressBar。

包括何时回收列表并再次显示占位符。

另外我以前在没有Picasso的情况下自己下载图像

我曾经将imageUrl设置为每个项目的标记,并在加载图像之前检查网址是否仍然存在(或者因为回收而被替换,然后无需加载回调图像)。

Picasso如何处理这种回收?

如何配置Picasso图像缓存?

1 个答案:

答案 0 :(得分:0)

你必须添加

progressBar.setVisibility(View.VISIBLE);
你的getView()中的

是这样的:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View vi = convertView;
    if (convertView == null)
        vi = inflater.inflate(R.layout.list_row, null);

    ImageView imageView = (ImageView) vi.findViewById(R.id.imageView);
    final ProgressBar progressBar = (ProgressBar) vi.findViewById(R.id.progressBar);
    TextView textView = (TextView) vi.findViewById(R.id.textView);

    textView.setText("" + position);

    progressBar.setVisibility(View.VISIBLE);

    Picasso.with(activity.getApplicationContext()).load(imagePath).resize(100, 100).centerCrop()
            .into(imageView, new Callback() {
                @Override
                public void onSuccess() {
                    progressBar.setVisibility(View.GONE);
                }

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

    return vi;
}

要了解有关视图回收的更多详细信息,请按照this链接。