Android 如何使用湿壁画阅读任何包装';将gif图像保存在资产目录中
我知道如何读取本地包资产目录中的gif图像。但现在我需要读取其他软件包资产中的其他gif图像。例如,主应用程序com.aaa.APP可以读取资产中的com.bbb.APP gif。我知道它的用途Android 如何使用湿壁画阅读任何包装';将gif图像保存在资产目录中,android,gif,fresco,Android,Gif,Fresco,我知道如何读取本地包资产目录中的gif图像。但现在我需要读取其他软件包资产中的其他gif图像。例如,主应用程序com.aaa.APP可以读取资产中的com.bbb.APP gif。我知道它的用途 try { context = this.createPackageContext("com.bbb.app", Context.CONTEXT_IGNORE_SECURITY); } catch (PackageManager.NameNotFoundException e)
try {
context = this.createPackageContext("com.bbb.app",
Context.CONTEXT_IGNORE_SECURITY);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
AssetManager am = context.getResources().getAssets();
try {
InputStream is = am.open(fileName);
image = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
要阅读jpg/png,但我想使用湿壁画库阅读gif。有人知道怎么做吗?目前,Fresco支持以下内容:
Uri uri = Uri.parse("asset:///image.png");
这可以转化为:
AssetManager.openFd("image.png");
目前,Fresco支持以下内容:
Uri uri = Uri.parse("asset:///image.png");
这可以转化为:
AssetManager.openFd("image.png");
一旦你有了gif的uri,就可以用fresco加载它
SimpleDraweeView simpleDraweeView = (SimpleDraweeView) findViewById(R.id.imageview);
ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithResourceId(R.raw.sample_gif).build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(imageRequest.getSourceUri())
.setAutoPlayAnimations(true)
.build();
simpleDraweeView.setController(controller);
一旦你有了gif的uri,就可以用fresco加载它
SimpleDraweeView simpleDraweeView = (SimpleDraweeView) findViewById(R.id.imageview);
ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithResourceId(R.raw.sample_gif).build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(imageRequest.getSourceUri())
.setAutoPlayAnimations(true)
.build();
simpleDraweeView.setController(controller);
不要忘记将此添加到您的
build.gradle
:
compile 'com.facebook.fresco:animated-gif:0.12.0'
不要忘记将此添加到您的
build.gradle
:
compile 'com.facebook.fresco:animated-gif:0.12.0'