如何用毕加索将照片保存在记忆中?

时间:2018-05-06 18:16:58

标签: android database picasso

我正在使用 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);


                    }
                });

1 个答案:

答案 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);

也许有帮助