如何从在线位置加载矢量绘图,例如http://arsenal.com/image.xml并将其显示为图像
答案 0 :(得分:3)
您是否需要在旧设备上支持VectorDrawables?如果是这样,那么我认为目前不可能。 AFAIK支持库只允许你分配一个VectorDrawable(如果它是一个资源)(即通过setImageResource()
)。
http://android-developers.blogspot.co.nz/2016/02/android-support-library-232.html
替代方案是使用SVG代替并使用Android的SVG库之一。
但是,如果您只需要支持Lollipop以及之后,那么应该可以使用下面列出的流程。虽然我自己没有尝试过。
首先,将StreamDrawable文件作为Stream获取。例如,请参阅this question。
然后,您需要制作一个XmlPullParser实例。
xppXmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xpp = factory.newPullParser();
然后告诉解析器有关流的信息
xpp.setInput(input, null);
然后你可以通过调用inflate()
获得VectorDrawable。将它传递给解析器实例。
VectorDrawable vd = new VectorDrawable();
vd.inflate(getResources(), xpp, null, null);
然后你应该能够将drawable分配给你的ImageView。
imageView.setImageDrawable(vd);
祝你好运!