Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android – ¿Cómo obtener un archivo de imagen de Fresco caché de disco?

Estoy usando la biblioteca de Fresco .

No puedo encontrar ninguna información relacionada en la documentación de Fresco, ¿cómo puedo obtener un archivo de imagen de la caché de disco de Fresco?

  • Android en el Listener de cambio de texto
  • Añadir encabezados personalizados a las solicitudes de recursos de WebView - android
  • 'RealmNoticeModelClass' tiene una clave primaria, use 'createObject (Class <E>, Object)' en su lugar
  • ¿Cómo uso FragmentPagerAdapter para tener pestañas con contenido diferente?
  • Problema con Android Java UTF-8 HttpClient
  • ViewRootImpl: ViewPostImeInputStage processPointer 0 en OnItemClick de Listview en android
  • Dónde colocar los archivos de texto en el directorio de Android
  • ¿Cómo usar android.test.mock MockContext?
  • 4 Solutions collect form web for “Android – ¿Cómo obtener un archivo de imagen de Fresco caché de disco?”

    espero que esto ayude

    Compruebe la respuesta de Plamenkos en este enlace .. https://github.com/facebook/fresco/issues/80

    Si le pide a pipeline una imagen codificada y especifica DISK_CACHE con ImageRequestBuilder.setLowestPermittedRequestLevel, la tubería le devolverá los bytes JPEG si la imagen se encuentra en cualquier lugar hasta la caché de disco, o null si la imagen no se encuentra y un full-fetch Tienen que realizarse.

    Espero no haber entendido mal su pregunta y dar una respuesta equivocada.

    Si la imagen tiene descarga en caché, puedes hacerlo como:

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

    Creo que nunca debe tratar de obtener Fresco Cache nombre causa caché es el implemento interno.

    Pero si desea saber si una imagen se ha almacenado en caché, puede utilizar esto:

     private boolean isDownloaded(Uri loadUri) { if (loadUri == null) { return false; } ImageRequest imageRequest = ImageRequest.fromUri(loadUri); CacheKey cacheKey = DefaultCacheKeyFactory.getInstance() .getEncodedCacheKey(imageRequest); return ImagePipelineFactory.getInstance() .getMainDiskStorageCache().hasKey(cacheKey); } 

    Este método es volver muy rápido, se puede utilizar en el hilo de la interfaz de usuario.

     ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(YourImageUrl)) .setLowestPermittedRequestLevel(ImageRequest.RequestLevel.DISK_CACHE) .setResizeOptions(new ResizeOptions(width, width)) .build(); DraweeController controller = Fresco.newDraweeControllerBuilder() .setOldController(YourImageView.getController()) .setImageRequest(request) .build(); 

    Este código:

    .setLowestPermittedRequestLevel(ImageRequest.RequestLevel.DISK_CACHE)

    Hará fresco obtener su imagen del disco primero y luego la red.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.