如何在Android中加载HTML内容到Textview

dluptydi  于 2023-05-12  发布在  Android
关注(0)|答案(1)|浏览(112)

我正在尝试将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。

dwbf0jvd

dwbf0jvd1#

你不能
TextViewHtml.formHtml(..)只支持一些标签,看看HERE中的标签。它基本上是处理最常见标记的快速解决方案,如bu,用于快速文本格式化(而不是使用Spannable,后者更复杂,需要编写更多代码)
如果需要更复杂的HTML处理,则必须使用WebView

相关问题