从SD卡

时间:2016-07-26 06:42:04

标签: android android-imageview android-vectordrawable

我想在SD卡的imageview中显示矢量图像(比如vectorimage.xml)。请在android中提供一些如何做到这一点的见解。 我已经尝试过了: -

String imagePath = Environment.getExternalStorageDirectory() + "/ folder/productImage.xml";

bitmapImage = BitmapFactory.decodeFile(imagePath);
Drawable bgrImageDrawable = new BitmapDrawable(bitmapImage);

上面的代码片段不起作用,因为bitmapImage是空的。

1 个答案:

答案 0 :(得分:3)

BitmapFactory无法加载矢量绘图。 您必须使用VectorDrawable或VectorDrawableCompat类。 要加载矢量drawable,您需要使用xml加载器。

某些解析器(如资源的解析器)需要预编译的二进制xml文件。当您将矢量drawable放在drawable资源目录中时,可以在apk文件中找到它们。

以下是从资产加载它的示例,您应该可以使用类似的代码从SD卡加载。

final XmlResourceParser parser = context.getAssets().openXmlResourceParser("assets/folder/image.xml");
drawable = VectorDrawableCompat.createFromXml(context.getResources(), parser);

这种方式至少需要Android 5.0