如何更改从 android 中的服务器获取的矢量文件的填充颜色?

Posted

技术标签:

【中文标题】如何更改从 android 中的服务器获取的矢量文件的填充颜色?【英文标题】:How can i change fill color of a vector file fetched from server in android? 【发布时间】:2021-10-15 13:10:33 【问题描述】:

我是否可以通过单击从服务器获取的特定路径来访问矢量文件的元素,例如填充颜色。我正在从服务器获取整个矢量文件。我尝试了很多库,包括RichPath、VectorChildFinder、androidSVG,但它们需要一个存储在 res 文件夹中的矢量文件。将所有文件保留在 res 文件夹中是不可行的,因为有很多文件。 我所取得的成就是我可以将其解析为 imageview 但无法访问其中的元素。

谢谢。

【问题讨论】:

【参考方案1】:

我不知道其他的,但 AndroidSVG 不要求文件位于 res 或 assets 文件夹中。该库不包含任何从 URL 获取的方法,但您始终可以自己获取文件,然后使用 SVG.getFromString(fetchedSVGData)

如果您不想自己处理获取,可以使用 Glide 之类的库。它有一个example of how to fetch SVGs and display with AndroidSVG。

要为 SVG 着色,只需使用 AndroidSVGs 在渲染时传递 CSS 样式表的能力。

【讨论】:

感谢您的帮助,但我也想让文件中的元素保持可点击状态。我正在开发一个会议室预订应用程序,我想向用户显示平面图(这是一个来自服务器的 svg 文件),以便用户可以选择椅子并在选择时更改椅子的颜色。

以上是关于如何更改从 android 中的服务器获取的矢量文件的填充颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中更改警报对话框的文本行

如何从android中的另一个应用程序资源更改主题?

从swift 3中的触摸位置获取矢量

如何在 android 应用程序中仅从服务器获取更新的数据?

将文件中的数据读入矢量对象

如何从服务器获取和设置 android 中的 API(从服务器获取 int 值)?如何绑定和实现这个