我还没有在Stackoverflow的其他线程中找到自信的响应。如何在Android上从SdCard解析矢量XML
有很多方法可以从sdcard中取出xml,但我收到相同的错误。我不明白为什么会发生这种情况。
1)这是我使用的方法:
public XmlPullParser xmlVectorFromResource() throws FileNotFoundException, IOException {
try {
String data;
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
File file = new
// testing loading a .xml from DCMI
File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "/cityscape.xml");
FileInputStream fis = new FileInputStream(file.getPath());
InputStreamReader isr = new InputStreamReader(fis);
char[] InputBuffer = new char[fis.available()];
isr.read(InputBuffer);
data = new String(InputBuffer);
isr.close();
fis.close();
XmlPullParser xpp = null;
xpp = factory.newPullParser();
xpp.setInput(new StringReader(data));
return xpp;
} catch (XmlPullParserException ex) {
ex.printStackTrace();
}
return null;
}
2)这是我想要的载体。这是一个有效的(我从RES测试/绘项目): http://beetxt.com/N4c
3)这是怎么了callind方法:
XmlPullParser drawable = null;
try {
drawable = xmlVectorFromResource();
} catch (IOException e) {
e.printStackTrace();
}
if (drawable != null) {
try {
mImageview.setImageDrawable(VectorDrawableCompat
.createFromXml(holder.cardView.getResources()
, drawable));
} catch (XmlPullParserException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
} else {
Log.d(TAG, "Wapawm, problems");
}
4),这是我收到的错误: http://www.beetxt.com/ape/
我希望有一个解决方案。
在此先感谢。
UPDATE
现在我重新启动aplication和接收新的错误。 LOL
这是我收到什么:java.lang.ClassCastException:android.util.XmlPullAttributes不能转换到android.content.res.XmlBlock $分析器
下面是一个测试项目,你可以看到错误github.com/denebchorny/vectorxmltest/tree/master
错误信息是什么样的? –
@ vtd-xml-author对不起,延迟。我在这里发布错误:http://www.beetxt.com/ape/,但本质上是W/System.err:org.xmlpull.v1.XmlPullParserException:找不到开始标记。我正在使用有效的向量。我测试过了。可能是什么? –
我需要这样加载一个向量,因为我试图从sdcard加载它并通过路径检查路径来查找和比较特定的TAG。 –