2015-11-21 2 views
0

У меня возник вопрос о библиотеке фрида андроида. Вы, ребята, знаете, как получить обратный вызов, когда файл сохраняется в кеше? В общем, мы могли бы получить файл из кэша:Флешка для Android, как получить обратный вызов кеша сохранения?

ImageRequest imageRequest= ImageRequest.fromUri(url); 
CacheKey cacheKey= DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(imageRequest); 
BinaryResource resource = ImagePipelineFactory.getInstance().getMainDiskStorageCache().getResource(cacheKey); 
File file=((FileBinaryResource)resource).getFile(); 

Однако, если бы это в функции OnCreate(), это приведет к краху, так как файл не был в кэше еще. Вы, ребята, знаете, как я получил обратный вызов, когда фреска заканчивает сохранение? Это DataSubscriber? Могли бы вы, ребята, привести пример? Я прочитал документацию, но не мог понять.

Спасибо.

ответ

0

Я часть команды Fresco и могу быть в состоянии помочь. См. Наш documentation о том, как правильно получить байты кодированного изображения. Существует пример кода, как получить InputStream кодированного изображения (это то, что хранится в кеше). Вы можете использовать эти байты напрямую, или если вам нужен File, чтобы передать его где-то в другом месте, вы должны создать свой собственный файл и сохранить в нем возвращенные байты. Нет другого безопасного способа обработки кэшированных изображений, потому что у вас нет гарантий, что Fresco не будет выселять (удалять) кешированный файл в любое время.

+0

Как мы знаем, фреска не может изменять размер gif или png и такой материал. Если я хочу изменить его размер, мне нужно сжать его самостоятельно. После получения сжатого растрового изображения я не знаю, как его загрузить фрезой Не могли бы вы дать мне совет? –

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