我使用了 Fresco 0.5.2 :
dependencies {
compile 'com.facebook.fresco:fresco:0.5.2'
}
我想使用
SimpleDraweeView
从drawable
加载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/