首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WebView中设置文本大小

如何在WebView中设置文本大小
EN

Stack Overflow用户
提问于 2014-02-11 06:02:10
回答 11查看 52.6K关注 0票数 31

我使用WebView来证明文本是正确的。我想知道-

  1. 是否可以在layout文件中设置文本大小?因为我想要不同的文本大小不同的屏幕大小。
  2. 还有一个问题是先出现背景,然后在2秒后显示文本。是否可以立即显示文本?

文本大小为7-8行.

密码-

代码语言:javascript
复制
public class Main extends Activity {

       WebView mWebView;

       @Override
       public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);        
          mWebView = (WebView) findViewById(R.id.webview);
          String text = "<html><body>"+"<p align=\"justify\">"+getString(R.string.itext)+"</p>"+"</body></html>"; 
      mWebView .loadData(text, "text/html", "utf-8");
      mWebView .setBackgroundColor(Color.TRANSPARENT);
       }
}

Xml-

代码语言:javascript
复制
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:orientation="vertical" 
       android:layout_width="fill_parent"
       android:layout_height="fill_parent" 
       android:background="@drawable/light">

<WebView
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/transparent"/>
</LinearLayout>
EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2014-02-22 10:48:24

用于从布局中设置文本大小-

代码语言:javascript
复制
final WebSettings webSettings = web.getSettings();
Resources res = getResources();
fontSize = res.getDimension(R.dimen.txtSize);
webSettings.setDefaultFontSize((int)fontSize);

如欲即时显示文字-

代码语言:javascript
复制
webSettings.setRenderPriority(RenderPriority.HIGH);
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setAppCacheEnabled(false);
webSettings.setBlockNetworkImage(true);
webSettings.setLoadsImagesAutomatically(true);
webSettings.setGeolocationEnabled(false);
webSettings.setNeedInitialFocus(false);
webSettings.setSaveFormData(false);

在values文件夹中-

代码语言:javascript
复制
<resources>

    <dimen name="txtSize">26sp</dimen>

</resources>

希望它能成功。

票数 64
EN

Stack Overflow用户

发布于 2014-02-17 05:07:00

代码语言:javascript
复制
WebSettings webSettings = webView.getSettings();

无论是setTextSize还是

代码语言:javascript
复制
webSettings.setTextSize(WebSettings.TextSize.SMALLEST);

这个也适用于:

代码语言:javascript
复制
webSettings.setDefaultFontSize(10);

并立即显示文本:

代码语言:javascript
复制
webview.getSettings().setRenderPriority(RenderPriority.HIGH);
webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webview.setBlockNetworkImage(true);
webview.setLoadsImagesAutomatically(true);
webwebviewSettings.setGeolocationEnabled(false);
webview.setNeedInitialFocus(false);
webview.setSaveFormData(false);
票数 20
EN

Stack Overflow用户

发布于 2014-02-15 16:32:41

我不确定这是否是您要寻找的内容,但只要您不想根据文本宽度/高度的计算来设置文本大小,这应该是您要寻找的:

代码语言:javascript
复制
WebSettings settings = yourWebView.getSettings();

通过这种方式,您可以获得WebView的设置,您要更改其文本大小。

可以使用TextSize类将一些预定义的值设置为size,例如:

代码语言:javascript
复制
settings.setTextSize(TextSize.SMALLEST);
settings.setTextSize(TextSize.SMALLER);
settings.setTextSize(TextSize.NORMAL);
settings.setTextSize(TextSize.BIGGER);
settings.setTextSize(TextSize.BIGGEST);

您可以根据所选择的当前设备的参数,简单地选择需要设置的参数。

相反,如果您希望进行某种屏幕宽度/高度计算,并将结果设置为特定值,则甚至可以使用以下方法:

代码语言:javascript
复制
settings.setDefaultFontSize(an_integer_that_goes_between_1_and_72);

--编辑--

若要增强WebView呈现,请尝试以下操作:

代码语言:javascript
复制
mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

还可以尝试将其添加到Manifest文件中:

代码语言:javascript
复制
android:hardwareAccelerated="true"
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21694306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档