我正在寻找一种我可以使用的设计模式,以便在 android recyclerView 中我可以以低质量快速加载图像,然后还调用高质量图像将在之后覆盖低质量图像。我经常看到首先加载低质量图像然后出现高质量图像的情况。
但是这是如何在回收器视图的适配器中完成的。现在我正在使用 picasso 进行缓存和图像加载。所以例如这里是一个低质量图像的链接:
http://example.com/lowQuality.jpg和同样高质量的http://example.com/highQuality.jpg
因此,如果我在视图中执行此操作,则在我的 recyclerView 适配器中:
public class SearchItemHolder extends RecyclerView.ViewHolder {
@BindView(R.id.iv)
ImageView iv;
@BindView(R.id.tv_description)
TextView tv_description;
public SearchItemHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
public void bindSearch(final SearchModel searchModel) {
String description = searchModel.getProductName();
final String imageLowQualityIDUrl = searchModel.getIdLowQualityImage();
final String imageHighQualityIDUrl = searchModel.getIdHighQualityImage();
tv_price.setText(price);
tv_description.setText(description);
Picasso.with(mContext).load(imageLowQualityIDUrl).into(iv);
//but how to switch it to high quality URL after its finished loading ?
}
}
所以要清楚,我希望只要尚未加载高质量图像,就可以首先显示低质量图像。
更新:我真正想要的是我在应用程序上看到的效果,其中低质量的图像加载速度很快,然后在几秒钟后它转换为更高的质量。如果有其他工具或方法可以做到这一点,请告诉我。我想要与 whatsapp 个人资料图像相同的效果(它如何从劣质变为优质)。