【问题标题】:Load a vector drawable into imageview from sd card从 sd 卡将可绘制的矢量加载到 imageview 中
【发布时间】:2022-01-27 15:08:30
【问题描述】:

我想在 sd 卡的图像视图中显示矢量图像(比如 vectorimage.xml)。请就如何在android中执行此操作提供一些见解。 我已经尝试过的:-

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

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

上面的代码 sn-p 不起作用,因为 bitmapImage 为空。

【问题讨论】:

  • 您是否在 imagepath 中获取路径检查它并检查清单中的权限
  • 是的,我已经用 jpeg 用相同的代码 sn-p 完成了这项工作。
  • @RamyaBA 即使我也面临同样的问题。

标签: android android-imageview android-vectordrawable


【解决方案1】:

BitmapFactory 无法加载矢量绘图。 您必须使用 VectorDrawable 或 VectorDrawableCompat 类。 要加载矢量可绘制对象,您需要使用 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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 1970-01-01
  • 2019-12-18
相关资源
最近更新 更多