我正在尝试将HTML内容添加到Android textview。我使用下面的代码来加载。
TextView textView;
String text = "<span style='color:#6D3078;font-family:'Quicksand',Medium;line-height:14px;font-size: 14px;font-weight:700;Width: 128px;Height:1px;Top:421px;Left:20px'><strong>Additional</strong> <strong>Benefits</strong></span><div style=\"border: 1px solid Gainsboro; height: 1px; width: 320px;\"></div><ul style=\"list-style: none; padding: 0;\"><li><span style=\"display: inline-block; width: 6px; height: 6px; border-radius: 50%; background-color: #6D3078; margin-right: 10px;\"></span><span style='color:#3F3F3F;font-family:' Quicksand ',Medium;line-height:12px;font-size: 12px;font-weight:500;Width: 320px;Height:12px;'>Program</span></li><li><span style=\"display: inline-block; width: 6px; height: 6px; border-radius: 50%; background-color: #6D3078; margin-right: 10px;\"></span><span style='color:#3F3F3F;font-family:' Quicksand ',Medium;line-height:12px;font-size: 12px;font-weight:500;Width: 320px;Height:12px;'>Individual</span></li><li><span style=\"display: inline-block; width: 6px; height: 6px; border-radius: 50%; background-color: #6D3078; margin-right: 10px;\"></span><span style='color:#3F3F3F;font-family:' Quicksand ',Medium;line-height:12px;font-size: 12px;font-weight:500;Width: 320px;Height:12px;'>Self</span></li><li><span style=\"display: inline-block; width: 6px; height: 6px; border-radius: 50%; background-color: #6D3078; margin-right: 10px;\"></span><span style='color:#3F3F3F;font-family:' Quicksand ',Medium;line-height:12px;font-size: 12px;font-weight:500;Width: 320px;Height:12px;'>Common</span></li></ul><a href=\"https://www.google.com\"><span style='color:#F37435;font-family:' Quicksand ',Medium;line-height:12px;font-size: 12px;font-weight:500;Width: 190px;Height:12px;'>Other Details & Program</span></a><p> </p><span style='color:#6D3078;font-family:' Quicksand ',Medium;line-height:14px;font-size: 14px;font-weight:700;Width: 148px;Height:14px;Top:421px;Left:20px'><strong>For Program</strong></span><p> </p><p> </p><p>Come with family <strong>Just</strong> Join with us.</p><p>\n";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textview_android);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
textView.setText(Html.fromHtml(text, Html.FROM_HTML_MODE_COMPACT));
} else {
textView.setText(Html.fromHtml(text));
}
}
但有些样式不适用。
输出:
但是当我在webview中加载相同的html文本时,我会得到以下输出。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = findViewById(R.id.webView);
myWebView.loadUrl("file:///android_asset/myfile.html");
}
预期输出:
请给予一些想法,以适用于所有的样式在textview。
1条答案
按热度按时间dwbf0jvd1#
你不能
TextView
和Html.formHtml(..)
只支持一些标签,看看HERE中的标签。它基本上是处理最常见标记的快速解决方案,如b
或u
,用于快速文本格式化(而不是使用Spannable
,后者更复杂,需要编写更多代码)如果需要更复杂的HTML处理,则必须使用
WebView