我想在SD卡的imageview中显示矢量图像(比如vectorimage.xml)。请在android中提供一些如何做到这一点的见解。 我已经尝试过了: -
String imagePath = Environment.getExternalStorageDirectory() + "/ folder/productImage.xml";
bitmapImage = BitmapFactory.decodeFile(imagePath);
Drawable bgrImageDrawable = new BitmapDrawable(bitmapImage);
上面的代码片段不起作用,因为bitmapImage是空的。
答案 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