android - 如何从 HTTP 响应在 Android 中创建 SVG 资产?
问题描述
我有一个 REST 端点,它返回一个 JSON 响应。其中一个键保存 SVG 格式的图像信息。如何解析此信息并将此 SVG 作为矢量资产存储在 android drawables 中。保存后,我想重用它以在我的屏幕上呈现以备将来使用。
示例代码:
Call < BarnPlan > getBarnPlan = client.getBarnPlan(token, barnIdList.get(0));
getBarnPlan.enqueue(new Callback < BarnPlan > () {
@Override
public void onResponse(@NonNull Call < BarnPlan > call,
@NonNull Response < BarnPlan > response) {
int responseCode = response.code();
switch (responseCode) {
case 200:
if (response.body() != null) {
}
}
}
@Override
public void onFailure(@NonNull Call < BarnPlan > call,
@NonNull Throwable t) {
}
});
JSON响应:
{
"statusCode": 200,
"success": true,
"statusMessage": "Ok",
"value": "<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="89.444817mm" height="154.33426mm" viewBox="0 0 89.444817 154.33426" version="1.1" id="svg7936" sodipodi:docname="Büro.svg" inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"> <defs id="defs2" /> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity "
}
Pojo 类 BarnPlan 包含我想要转换为矢量资产的字符串形式的 xml(SVG) 响应。
解决方案
推荐阅读
- java - 未设置 Struts 2 拦截器响应标头
- c# - 流程统一从循环中消失
- html - 如何在 span 标签内放置(覆盖)图像?
- sql-server-2016 - [Microsoft][ODBC SQL Server Driver][SQL Server]子查询返回超过 1 个值
- android - PlacePicker 在启动时立即关闭
- jenkins - 是否可以稍后在脚本部分中从声明性 Jenkinsfile 引用“代理”容器?
- react-native - React Native:无法导入csv文件
- xamarin - 如何在 Xamarin 表单的标签上使用 textcolor?
- api - Google Maps API 地图集群图像不会显示
- maven - 是否可以在 Maven 读取项目之后和生命周期开始之前运行脚本