HTML轉換成原生代碼是一項非常有用的技能,尤其是對于Android開發者來說。在Android應用程序中,原生視圖通常比使用WebView來顯示HTML更為優化和有效。在下面的例子中,我們將展示一個將HTML轉換成原生代碼的簡單方法。
public void convertHtmlToNative(String html) { Spanned spanned; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { spanned = Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY); } else { spanned = Html.fromHtml(html); } String[] htmlArray = spanned.toString().split("\n"); for (String line : htmlArray) { TextView textView = new TextView(context); textView.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); textView.setText(line); containerLayout.addView(textView); } }
以上代碼中使用了Android的Html.fromHtml()方法將HTML轉化為Spanned對象。如果您的應用最低支持Android N,那么您可以通過傳遞Html.FROM_HTML_MODE_LEGACY參數來使用Html.fromHtml()方法,該方法將HTML字符轉換為可處理的Spanned對象。如果您的應用程序最低支持Android 4.0(API級別14),則需要使用默認版本的Html.fromHtml()方法。
轉換后的Spanned對象然后被分割成單獨的字符串,每個字符串都被用作TextView對象的文本屬性。最后,這些TextView對象被添加到父容器Layout中,以在界面上顯示。