[英]Decode SVG image file (encoded as base64) in java
我有SVG文件编码为base64,我想用ImageView显示图像。 这是我试过的:
// imageBase64 is string that represents the SVG image encoded as base64
byte[] decodedString = Base64.decode(imageBase64, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
但decodeByte总是返回null。
PS:
(这是基于Robert Longson的深刻见解。)
您的问题与base64编码无关。 它比那更基础。
您当前采用的方法将无法正常工作,因为BitmapFactory
将只解码位图文件格式。 Bitmap
类仅代表PNG,JPG和GIF格式; 看到javadoc 。 (SVG是矢量图形格式,而不是位图格式。)
第二个问题是Android目前在ImageView
中没有对SVG的原生支持。 所以你有两个选择:
使用嵌入式浏览器窗口显示SVG图形。 Android 3+默认浏览器支持SVG。 (Android 2浏览器没有,但有可能的解决方法。)
使用第三方SVG库。 有些示例使用Picture
对象和其他使用ImageView
子类的示例。 调查选项并选择最符合您要求的选项。
有关替代方案的更多详细信息,请阅读以下各种答案:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.