Как я могу сохранить фотографии в памяти с Пикассо? - PullRequest
0 голосов
/ 06 мая 2018

Я просматриваю некоторые фотографии, используя recyclview с Picasso . Эти изображения слишком много для перекомпиляции в recyclerview , и когда я снова поднимаюсь, они перезагружают картинки, и если картинки слишком большие или плохой доступ к сети, это не выглядит красиво.

Интересно, как я могу кэшировать картинки, которые я вызывал с loadUrl с Пикассо . Возможно ли это с Пикассо ?

В качестве примера могу привести 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 голосов
/ 07 мая 2018

почему вы используете

 .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);

может быть, это поможет

...