Android Glide可以直接从字符串中加载SVG图像。

4

SVG格式的字符串? 你是将图像保存为Base64字符串在SQLite中吗? - Kamran Ahmed Khan
我是这样保存字符串的: <svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg"> <ellipse cx="240" cy="100" rx="220" ry="30" style="fill:purple"/> <ellipse cx="220" cy="70" rx="190" ry="20" style="fill:lime"/> <ellipse cx="210" cy="45" rx="170" ry="15" style="fill:yellow"/> </svg> - Jermmy
它能否从输入流中读取SVG? - greenapps
但是,如果使用InputStream,则可以从文件(本地或网络)中获取SVG。当SVG保存在数据库中时,我不知道该如何处理。 - Jermmy
这是我如何使用AndroidSVG解决它的方法:链接 - Vishal Naikawadi
1个回答

1
你的问题不够清晰。你没有明确说明你卡在哪个部分。
如果你只需要从字符串中获取一个InputStream,那么可以这样做:
InputStream stream = new ByteArrayInputStream(svgString.getBytes(StandardCharsets.UTF_8));

谢谢您的建议!在我的代码中,我首先从sqlite或网络加载一些字符串数组(字符串就像我上面评论的那样)。然后我应该解析它们并加载到一些ImageViews中。我想使用Glide和Android SVG库来完成这项工作,就像我问题中提到的示例一样。不同之处在于示例从文件加载svg,但我想直接从接收到的字符串数组中加载svg图像,而我不知道如何在Glide中实现这一点。 - Jermmy
这对我没用 :( 我收到了这个错误:GlideExecutor: com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders registered for model class: class java.io.ByteArrayInputStream - Asiel Diaz Benitez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接