【问题标题】:WebView text sizeWebView 文本大小
【发布时间】:2012-09-24 22:12:31
【问题描述】:

有时,当我加载我的页面(没有静态内容,动态构建)时,我发现字体太小1。如果我重新加载,我会正确地看到它2。我来回走动,正确地看到它。然后……小。不是特定页面,不是特定时间。甚至没有特定版本:我在 ICS 设备上部署,没问题,然后改变一些东西(比如字体大小),这就是问题所在。在 8 和 10 模拟器上部署也是如此。

我的观点很简单:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="vertical" >
    <WebView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webviewArticle"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:padding="12dp" >
    </WebView>
</LinearLayout>

HTML构造(内容参数为格式化html)

String toShow = new StringBuffer()
    .append("<html>")
    .append("<head>")
    .append("<style type='text/css'>body{ font-size: large; color: #FFFFFF; background-color: #000000;}</style>")
    .append("</head>")
    .append(String.format(
        "<body><h1>%s</h1><div><img src='%s' alt='%s' style='width:100%%; height:auto' /></div><div style='background-color:#000000;'>%s</div><div><h3>%s</h3></div></body>",
        article.getTitle(),
        article.getImageLink().toString(),
        article.getTitle(),
        article.getContent().replace("%", "%25"), //html
        article.getAuthor()))
    .append("</html>")
    .toString();

mBrowser.getSettings().setBuiltInZoomControls(true);
mBrowser.setInitialScale(1);
CompatibilityUtils.setLoadWithOverviewMode(mBrowser, true); //set based on android version
mBrowser.getSettings().setUseWideViewPort(true);
mBrowser.loadDataWithBaseURL("fake://in/order/to/refresh", toShow, "text/html", "utf-8",null);

有什么提示吗?

附加说明 12/09/25:如图所示,WebView 认为可用空间是屏幕的一半,并相应地放置文本。这很奇怪。最奇怪的是,它对文本(图像上方的标题和下方的 div)而不是图像这么认为!!!

【问题讨论】:

    标签: android webview android-webview


    【解决方案1】:
    WebSettings settings= webView.getSettings();
    

    这个

    settings.setTextSize(WebSettings.TextSize.SMALLEST);
    

    settings.setDefaultFontSize(10);//Larger number means larger font size
    

    【讨论】:

    • 谢谢,但这不是字体大小问题,真的(我测试了你的建议,以防万一:))。请查看附加信息,看看你是否有提示:)谢谢
    • 尝试删除mBrowser.getSettings().setUseWideViewPort(true);
    • 感谢 MoshErsan 的尝试,您的回答让我走上了正轨:) 因此我会接受它。它实际上是overviewMode(请参阅link 了解what-is-what)。文字没问题,但是 :'( 我有图像大小问题。我会就此提出一个新问题。我不相信 很难放置一个简单的 header-image-text html页面。
    • 最终解决方案是移除 setUseWideViewPort,将 setInitialScale 更改为 0(例如默认值)并将概览模式设置为 false。我不太确定我为什么首先使用视口和概览模式;很可能是迄今为止有效的复制/粘贴:/再次感谢 MoshErsan
    • @MoshErsan 看来 setTextSize() 在 API 级别 14 中已被弃用。
    猜你喜欢
    • 2015-05-20
    • 1970-01-01
    • 2015-07-01
    • 2014-03-08
    • 2020-11-29
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多