我的数据以 html 格式存储在 db 上。
图像以 base64 格式存储(作为 db 中的字符串)。
我试图展示这些数据。
我的 textView 设置如下:
setText(Html.fromHtml(内容));
“内容”中的所有 html 标记都正确显示。除了“img”标签(它包含一个 base64 编码图像)。
所以,我的问题是:'Html.fromHtml'的标签'img'可以解码带有base64图像的字符串吗?
ps:标签所在的地方只是显示了一个灰色的小方块。没有错误。
谢谢。
结合Html.fromHtml您自己的Html.ImageGetter.
见这里。
覆盖时Html.ImageGetter.getDrawable,将 Base64 字符串转换为字节数组(您可以使用android.util.Base64)并将其输入BitmapFactory.decodeByteArray以生成 a Bitmap,然后您可以将其传递给 a 的构造函数BitmapDrawable以返回。
例如:
Html.fromHtml(content, new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
byte[] data = Base64.decode(source, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
return new BitmapDrawable(getResources(), bitmap);
}
}, null);