Android 如何解析从服务器中拉出的向量可绘制视图?

Android 如何解析从服务器中拉出的向量可绘制视图?,android,android-studio,android-drawable,android-vectordrawable,Android,Android Studio,Android Drawable,Android Vectordrawable,一般来说,向量可绘制表是编译的,并在执行时使用它们的ID进行访问 我的项目包括从服务器中取出图像。现在,我正在为png文件做这项工作,但我会尝试使用vectors“.xml” 我可以下载它们,但我无法以可绘制类型解析它们以在视图中显示它们 我如何用一堆字节来表示向量资源并将它们解析为可绘图项 这对我的应用程序来说将是一件大事,因为它将更轻,并且对那些像素化的图片有好处。该方法可能会有所帮助,但您可以使用第三方库:。如果可能,请不要复制控制盘。如果可以通过url从服务器访问图像,请使用将其加载到视

一般来说,向量可绘制表是编译的,并在执行时使用它们的ID进行访问

我的项目包括从服务器中取出图像。现在,我正在为png文件做这项工作,但我会尝试使用vectors“.xml”

我可以下载它们,但我无法以可绘制类型解析它们以在视图中显示它们

我如何用一堆字节来表示向量资源并将它们解析为可绘图项


这对我的应用程序来说将是一件大事,因为它将更轻,并且对那些像素化的图片有好处。

该方法可能会有所帮助,但您可以使用第三方库:。如果可能,请不要复制控制盘。

如果可以通过url从服务器访问图像,请使用将其加载到视图中。这样,在
ImageView
中使用图像之前,您不必将图像下载到存储器中。但是,如果您仍然希望以字节数组的形式获取图像并将其显示在视图中,请使用下面的代码段

Bitmap bm = BitmapFactory.decodeFile("/path/to/yourimage.jpg");
ByteArrayOutputStream baos = new ByteArrayOutputStream();  
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object   
byte[] b = baos.toByteArray(); //This is the image byte
String encodedImage = Base64.encodeToString(b, Base64.DEFAULT); //Encoded string
此外,您可以将字符串转换为
位图
,然后将其传递给
图像视图

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap bmp= BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
image.setImageBitmap(bmp);

如果您对此有任何疑问,请告诉我,我很乐意提供帮助。

这不是我想要的。我需要将表示向量可绘制的字节数组解析为向量可绘制的字节数组。这不是简单的位图。这是关于矢量绘图的。你能用正确的答案回答这个问题吗@androiddeveloper@DevMike01遗憾的是没有。我也尝试了VectorDrawable及其兼容版本的各种功能。可能我做错了什么…:(我已经将svg文件解析为相应的矢量可绘制资源。但该资源不在我的项目中,而是在服务器中。我将其拉入字节数组,因此我需要将其转换为矢量可绘制资源。“膨胀”方法不是真正公开的。相反,可能使用VectorDrawable.createFromStream,但我仍然不知道如何使用它。这个查询有什么解决方案吗?我也希望有同样的解决方案