我使用了 Fresco 0.5.2 :

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

我想使用SimpleDraweeViewdrawable加载gif图像。
这是我的代码:
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);
default_app只是一个jpeg图像,它不起作用。

我用它作为Fresco's documentation mentioned
路径或代码有问题吗?

最佳答案

要获取要在Fresco中加载的资源镜像的URI,请使用“res:/”代替用于URIs in a normal case的ContentResolver.SCHEME_ANDROID_RESOURCE。

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);

您也应该能够将URI与DraweeController一起使用。

这是壁画的supported URIs

关于android - 在Fresco的SimpleDraweeView中加载可绘制图像资源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30887615/

10-10 01:51