我有一个listView,每个项目都有一个图像。
每当图片尚未加载到每个项目中时,我想要一个progressBar。
包括何时回收列表并再次显示占位符。
另外我以前在没有Picasso的情况下自己下载图像
我曾经将imageUrl设置为每个项目的标记,并在加载图像之前检查网址是否仍然存在(或者因为回收而被替换,然后无需加载回调图像)。
Picasso如何处理这种回收?
如何配置Picasso图像缓存?
答案 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链接。