[英]Is there any other way to display Html code in Android TextView without using webview and Html.fromHtml() method?
我搜索了很多。 我必须在Textview中显示Html代码。 但是Textview中使用的主要是Html.fromHtml(source)。 但是所有html标签都不支持此方法。 Html.fromHtml()仅支持少量标签。
因为我需要应用所有CSS和所有html标签支持。
我想在不使用Webview的情况下在Textview中显示html代码。 有没有其他方法来实现此功能。
请参阅此链接 。 使用第三方库来改进本机TextView并支持更多HTML标记。 例如: HTML-TextView。
是的,您可以显示,但在这种情况下,您将必须实现HTMLTagHandler来呈现您的标签(因为Html.fromHtml()方法支持的标签很少)和ImageGetter来显示您的图像。 我已经创建了一个示例项目,请在此处查看 。
public class HtmlTagHandler implements Html.TagHandler {}
public final class GlideImageGetter implements Html.ImageGetter{}
你可以称之为
Html.fromHtml(htmlText, new GlideImageGetter(webViewReferenceObj,
(AppCompatActivity) mContext), new HtmlTagHandler())
你深入挖掘Html.fromHtml()是件好事。 但是只有这种方式可以使用html代码,并且为了更好的外观和布局,你可以像这样包装你的字符串文件。
<string><![CDATA[<html>YOUR STRING FILE</html>]></string>
或者只是你可以使用Webview。
此链接为您提供了此解决方案的正确答案,而不使用Web视图,并且它还支持更多html标记,如表格,图像和列表。
我发现这个教程,你可以使用HTML和CSS与TextView中不使用的WebView,但你必须使用Html.fromHtml
如下,你也应该使用Spanned
试一下!!
public class MainActivity extends ActionBarActivity {
private TextView textView;
private final String htmlWithCSS = "<!DOCTYPE html>\n" +
"<html>\n" +
"<head>\n" +
"<style>\n" +
"a1 {\n" +
" text-decoration: overline;\n" +
"}\n" +
"\n" +
"a2 {\n" +
" text-decoration: line-through;\n" +
"}\n" +
"\n" +
"a3 {\n" +
" text-decoration: underline;\n" +
"}\n" +
"</style>\n" +
"</head>\n" +
"<body>\n" +
"\n" +
"<a1>This is heading 1</a1>\n" +
"<a2>This is heading 2</a2>\n" +
"<a3>This is heading 3</a3>\n" +
"\n" +
"</body>\n" +
"</html>\n";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = ((CustomTextView) findViewById(R.id.text_view));
Spanned spanned = Html.fromHtml(htmlWithCSS);
textView.setText(spanned);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.