使用 Html + <img base64/> 的 TextView
TextView with Html + <img base64/>
我想显示存储在具有 html 标记( , < im /> ...)的字符串中的图像(png、gif)。
显示 Html 没问题,但图像不工作。
我在 Internet 上看到了示例,但仅适用于仅包含一个图像而没有文本等的字符串。
description.setText(Html.fromHtml(new.getDescription()));
示例:
"<p>Text before image</p>\r\n<p><img style="max-width: 100%;" src="data:image/gif;base64,R0lGODlhMgA2APQAACgoKDg4ODiQaFCQEHi4IEDYcGiIuIhYKLhoIMAYIPh/></p>"
谢谢大家的回答。
简而言之,要做到这一点,您需要使用 Html.fromHtml:
的扩展重载
description.setText(Html.fromHtml(new.getDescription(), new CustomImageGetter(), null));
并且您必须创建 CustomImageGetter 本身(它实现了 ImageGetter),并使 CustomImageGetter.getDrawable return 成为一个从您的字节字符串构造的可绘制对象。执行 WebView 或将字节字符串保存为资源并使用 CustomImageGetter 获取它可能更容易。
这个问题类似于另一个堆栈溢出问题:android-TextView setText in Html.fromHtml to display image and text,它可以帮助您设置一个 CustomImageGetter,它将 return 从资源中提取一个可绘制对象。然后你就可以开始尝试让字节串工作了。
我想显示存储在具有 html 标记( , < im /> ...)的字符串中的图像(png、gif)。 显示 Html 没问题,但图像不工作。 我在 Internet 上看到了示例,但仅适用于仅包含一个图像而没有文本等的字符串。
description.setText(Html.fromHtml(new.getDescription()));
示例:
"<p>Text before image</p>\r\n<p><img style="max-width: 100%;" src="data:image/gif;base64,R0lGODlhMgA2APQAACgoKDg4ODiQaFCQEHi4IEDYcGiIuIhYKLhoIMAYIPh/></p>"
谢谢大家的回答。
简而言之,要做到这一点,您需要使用 Html.fromHtml:
的扩展重载description.setText(Html.fromHtml(new.getDescription(), new CustomImageGetter(), null));
并且您必须创建 CustomImageGetter 本身(它实现了 ImageGetter),并使 CustomImageGetter.getDrawable return 成为一个从您的字节字符串构造的可绘制对象。执行 WebView 或将字节字符串保存为资源并使用 CustomImageGetter 获取它可能更容易。
这个问题类似于另一个堆栈溢出问题:android-TextView setText in Html.fromHtml to display image and text,它可以帮助您设置一个 CustomImageGetter,它将 return 从资源中提取一个可绘制对象。然后你就可以开始尝试让字节串工作了。