Как я могу добавить функцию кэширования в Picasso? - PullRequest
0 голосов
/ 25 октября 2018

Как я могу реализовать следующую задачу

Использовать инфраструктуру кэширования изображений и сетевую инфраструктуру?

Ниже Моя реализация

Picasso.get().load(introduction.getImage()).into(holder.imageView);

И я нашел этот пример:

Picasso.with(context)
                    .load(Uri.parse(getItem(position).getStoryBigThumbUrl()))
    .networkPolicy(NetworkPolicy.OFFLINE)
    .into(holder.storyBigThumb, new Callback() {
        @Override
        public void onSuccess() {

        }

        @Override
        public void onError() {
            // Try again online if cache failed
            Picasso.with(context)
                    .load(Uri.parse(getItem(position)
                            .getStoryBigThumbUrl()))
            .placeholder(R.drawable.user_placeholder)
            .error(R.drawable.user_placeholder_error)
                    .into(holder.storyBigThumb);
        }
    });

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете использовать NetworkPolicy.OFFLINE с Picasso.

if (introduction.getImage() != null) {
            Picasso.get().load(introduction.getImage()).resize(100, 100).centerCrop().
                    networkPolicy(NetworkPolicy.OFFLINE).into(holder.imageView, new Callback() {
                @Override
                public void onSuccess() {

                }

                @Override
                public void onError(Exception e) {
                    Picasso.get().load(R.drawable.ic_contact).resize(100, 100).centerCrop().
                            into(holder.imageView);
                }
            });

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...