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


Cargando el recurso de dibujable de imágenes en SimpleDraweeView de Fresco

Utilicé Fresco 0.5.2 :

dependencies { compile 'com.facebook.fresco:fresco:0.5.2' } 

Quiero usar SimpleDraweeView para cargar una imagen gif de drawable . Aquí está mi código:

 String path = ContentResolver.SCHEME_ANDROID_RESOURCE + "://"+ getResources().getResourcePackageName(R.drawable.default_app) + "/" + getResources().getResourceTypeName(R.drawable.default_app) + "/" + getResources().getResourceEntryName(R.drawable.default_app); Uri uri = Uri.parse(path); simpleDraweeView =(SimpleDraweeView) this.findViewById(R.id.simple_drawee_view); ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(uri).build(); DraweeController controller = Fresco.newDraweeControllerBuilder() .setImageRequest(imageRequest) .setAutoPlayAnimations(true) .build(); simpleDraweeView.setController(controller); 

La aplicación default_app es sólo una imagen jpeg y no funciona.

Utilicé esto como la documentación del Fresco mencionada . ¿Hay algún problema con la ruta o el código?

  • Imágenes no cargando en Fresco
  • Fresco agregar mapa de bits a caché programatically
  • Intenta obtener bitmap de uri usando Fresco
  • 4 Solutions collect form web for “Cargando el recurso de dibujable de imágenes en SimpleDraweeView de Fresco”

    Para obtener el URI de la imagen de recurso que se va a cargar en Fresco, utilice "res: /" en lugar de ContentResolver.SCHEME_ANDROID_RESOURCE, que se utiliza para URIs en un caso normal .

     import com.facebook.common.util.UriUtil; Uri uri = new Uri.Builder() .scheme(UriUtil.LOCAL_RESOURCE_SCHEME) // "res" .path(String.valueOf(resId)) .build(); // uri looks like res:/123456789 simpleDraweeView.setImageURI(uri); 

    Deberías poder usar ese URI con un DraweeController también.

    Aquí están los URIs soportados por Fresco.

    Estoy usando Fresco 0.7.0

     ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithResourceId(R.drawable.image).build(); SimpleDraweeView draweeView = (SimpleDraweeView) v.findViewById(R.id.picture); draweeView.setImageURI(imageRequest.getSourceUri()); 

    Si está usando proguard necesita agregar estas líneas en su archivo proguard:

     -keep class com.facebook.imagepipeline.gif.** { *; } -keep class com.facebook.imagepipeline.webp.** { *; } 

    Intente usar esto:

     String path = "res:/" + R.drawable.default_app; // Only one slash after res: simpleDraweeView.setImageURI(Uri.parse(path)); 

    No es necesario usar ImageRequest o DraweeController.

    Hay una implementación del código de NoActivity.java en la biblioteca de Fresco:

     ImageRequestBuilder.newBuilderWithResourceId(R.drawable.resId).build() 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.