为 Android 中的 webView 定义样式 HTML

Define style to HTML for webView in Android

我想使用以下方法用 HTML 填充 webView:

String str = "<html>" +
        "<body>" +
        "<style> \n" +
            "h3 {\"font-family:helvetica,arial,sans-serif;font-size:24px;line-height:1.3;\"} \n" +
            "p {\"font-family:helvetica,arial,sans-serif;font-size:12px;line-height:1.3;\"} \n" +
        "</style> \n" +
        "<h3> Open-Source licenses</h3>\n" +
        "<p> A huge thanks from all of us at to the great people behind the great programs listed below.</p>\n" +
        "<ul>\n" +
        "<li>Asynchronous Http Client for Android</li>\n" +
        "<li>Glide</li>\n" +
        "<li>Google Play Service</li>\n" +
        "<li>Gson</li>\n" +
        "<li>Picasso</li>\n" +
        "</ul>\n" +
        "<hr>" +
        "<h3>Asynchronous Http Client for Android</h3>\n" +
        "<p><a href=\"https://github.com/android-async-http/android-async-http\">https://github.com/android-async-http/android-async-http</a></p> \n" +
        "<p>Unless required by applicable law or agreed to in writing, software<br>distributed under the License is distributed on an &quot;AS IS&quot; BASIS,<br>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br>See the License for the specific language governing permissions and<br>limitations under the License.</p>\n" +
        "</body></html>";

wb_OpenSource.loadDataWithBaseURL( null, str, "text/html", "utf-8", null );

不过,风格好像没什么区别。

有什么方法可以让它工作而不是为每一行添加样式?

更新:

按照下面的建议,我创建了一个 .css 文件,如下所示:

#topHeader {
    font-family:helvetica,arial,sans-serif;font-size:24px;line-height:1.3;
}

#regHeader {
    font-family:helvetica,arial,sans-serif;font-size:20px;line-height:1.3;
}

#topText {
    font-family:helvetica,arial,sans-serif;font-size:14px;line-height:1.3;
}

#regText {
    font-family:helvetica,arial,sans-serif;font-size:12px;line-height:1.3;
}

#links {
    font-family:helvetica,arial,sans-serif;font-size:16px;line-height:1.3;
}

并将我的 HTML 更改为:

"<body>" +
"<link rel=\"stylesheet\" href=\"cssStyles.css\"> \n" +
"<h3 id=\"topHeader\"> Open-Source licenses</h3>\n" +
"<p id=\"topText\"> A huge thanks from all of us at to the great people behind the great programs listed below</p>\n" +
"<ul>\n" +
"<li id=\"regText\"> Asynchronous Http Client for Android </li>\n" +
"<li id=\"regText\"> ExpandableTextView Android Arsenal </li>\n" +

wb_OpenSource.loadDataWithBaseURL( "file://android_asset/cssStyles.css", str, "text/html", "utf-8", null );

但是好像不行

谢谢

您可以创建一个单独的 .css 文件来设置元素的样式。将 .css 文件放在资产文件夹中,并将其包含在您的 html 代码中。

现在在网络视图中加载 HTML,如下所示:

webView.loadDataWithBaseURL("file:///android_asset", HTML_STRING, "text/html","utf-8",null);