2015-07-26 5 views
0

Мне нужно получить доступ к изображению, которое было кэшировано после того, как оно было преобразовано (или обрезано) с помощью Picasso.Как использовать Picasso Image Caching?

Что я делаю, это использовать большой ресурс изображения, обрезая его часть экрана во время выполнения и устанавливая его на задний план RelativeLayout. До сих пор я использовал Пикассо, чтобы добиться этого.

Позже в приложении, изменить макет приложения по телефону:

setContentView(R.layout.OTHER_LAYOUT);  

Я хотел бы получить доступ к кэшу, где Пикассо сохраненный обрезанную версию изображения, и динамически установить фон OTHER_LAYOUT в сохраненная версия обрезанного изображения.

This S.O. post Кажется уместным получить доступ к растровому изображению, спрятанному Picasso на устройстве.

Я рассматриваю возможность попробовать это решение. Но комментарий одного пользователя (комментарий к принятому ответу) заставляет меня задаться вопросом, есть ли лучший способ. Сложные решения часто кажутся более подверженными ошибкам.

«кажется, может работать, но, на мой взгляд, это не очень удобно. Файлы где-то сохраняются. Lib должен предоставить их разработчикам. Было бы неплохо, вместо добавления функции миллионов в picasso lib, добавив очень простой и основные функции. Я отказался от использования picasso из-за этого. У этого есть миллионы особенностей мусора и очень ограниченные приятные особенности. "

Есть ли способ, которым Picasso позволяет мне получить доступ к изображению, которое было преобразовано и кэшировано, и использовать его где-то еще (простым способом &?)?

Если нет, другая библиотека даст мне больше удобства?

ответ

1

Не думайте слишком много о повторном использовании кешированных изображений, Пикассо очень хорош в этом и хорошо оптимизирован для этого. Просто загрузите один и тот же URL/drawable и примените преобразование. Если Picasso уже кэшировал его, он будет очень быстрым, вы можете проверить, кэшируется ли он на setIndicatorsEnabled(true) экземпляре Picasso.

+0

Я загружаю изображение из ресурсов приложения, а затем преобразую его. Не загружайте его. Как получить доступ к кэшированному изображению после его преобразования для другого RelativeLayout? –

+1

Вам нужно загрузить его снова, Picasso возьмет его из кеша, если он есть. После этого вам нужно снова применить преобразование. Пикассо кэширует только исходное изображение. – fab

Смежные вопросы