我正在使用 Picasso 使用 recyclview 查看一些图片。 这些图像在 recyclerview 中重新编译有点太多,当我再次上升时,它重新加载图片,如果图片太大,或者网络访问不好,它看起来不太好看。
我想知道如何使用 Picasso 缓存我用 loadUrl 调用的图片。这可能与 Picasso 有关吗?
作为一个例子,我可以给 Instagram 。每次我回到另一个活动时,它会再次加载图片并影响应用程序的性能。如果你教我如何将图片保存在记忆中,或者你给我看了一个来源,我很高兴。提前谢谢。
我的代码:
adapter = new FirebaseRecyclerAdapter<WallPaperItem, ListWallPaperViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull final ListWallPaperViewHolder holder, int position, @NonNull final WallPaperItem model) {
Picasso.with(getBaseContext())
.load(model.getImageLink())
.networkPolicy(NetworkPolicy.OFFLINE)
.into(holder.wallpaper, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
Picasso.with(getBaseContext())
.load(model.getImageLink())
.error(R.drawable.ic_wallpaper_black_24dp)
.into(holder.wallpaper, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
Log.e("ERROR","None");
}
});
}
});
holder.setItemClickListener(new ItemClickListener() {
@Override
public void onClick(View view, int position) {
Intent intent = new Intent(ListWallPaper.this,ViewWallPaper.class);
Common.selected_background = model;
Common.select_background_key = adapter.getRef(position).getKey();
startActivity(intent);
}
});
答案 0 :(得分:0)
为什么使用
.into(holder.wallpaper, new Callback() {}
并检查新的回调
试试这个
Picasso.get().load(model.getImageLink())
.networkPolicy(NetworkPolicy.OFFLINE)
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.ic_wallpaper_black_24dp)
.into(holder.wallpaper);
也许有帮助