如何在android中的WebView中设置文本大小

我正在使用WebView来certificate文本的合理性。 我想知道-

  1. 是否可以在layout文件中设置文本大小? 因为我想要不同的屏幕尺寸不同的文字大小。

  2. 并且还有一个问题是在2秒文本显示之后首先出现背景。 是否可以立即显示文字?

文字大小为7-8行

码-

 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 = ""+"

"+getString(R.string.itext)+"

"+""; mWebView .loadData(text, "text/html", "utf-8"); mWebView .setBackgroundColor(Color.TRANSPARENT); } }

XML的

     

  • Google如何通过WebView检测请求?
  • 在Android中维护cookie会话
  • Cookies和Webview - Android中的CookieSyncManager!
  • Android - 识别Web视图播放的声音与否
  • 如何让webview在Android 4中进行缩放
  • 取消在Android上的WebView中加载
  • 滚动选项卡中的片段时隐藏/显示工具栏
  • Android - 显示/隐藏片段留下一个空白区域
  • 用于从布局设置文本大小 –

     final WebSettings webSettings = web.getSettings(); Resources res = getResources(); fontSize = res.getDimension(R.dimen.txtSize); webSettings.setDefaultFontSize((int)fontSize); 

    对于立即文本显示 –

     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); 

    在值文件夹中 –

      26sp  

    希望它有效。

     WebSettings webSettings = webView.getSettings(); 

    setTextSize或

     webSettings.setTextSize(WebSettings.TextSize.SMALLEST); 

    这个也有效:

     webSettings.setDefaultFontSize(10); 

    并立即显示文字:

     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); 

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

     WebSettings settings = yourWebView.getSettings(); 

    这样您就可以获得WebView的设置,而您正在尝试更改其文本大小。

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

     settings.setTextSize(TextSize.SMALLEST); settings.setTextSize(TextSize.SMALLER); settings.setTextSize(TextSize.NORMAL); settings.setTextSize(TextSize.BIGGER); settings.setTextSize(TextSize.BIGGEST); 

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

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

     settings.setDefaultFontSize(an_integer_that_goes_between_1_and_72); 

    —-编辑—-

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

     mWebView.getSettings().setRenderPriority(RenderPriority.HIGH); mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 

    您也可以尝试将此添加到您的Manifest文件:

     android:hardwareAccelerated="true" 

    WebView上设置FontSize有三种方法。

    1)WebView.setDefaultFontSize(int)

     webview.setDefaultFontSize(50); 

    2)WebView.getSettings()。setTextSize(WebSettings.TextSize.SMALLEST)

     WebView.getSettings().setTextSize(TextSize.SMALLEST); 

    要么

     WebView.getSettings().setTextSize(TextSize.SMALLER); 

    要么

     WebView.getSettings().setTextSize(TextSize.NORMAL); 

    要么

     WebView.getSettings().setTextSize(TextSize.BIGGER); 

    要么

     WebView.getSettings().setTextSize(TextSize.BIGGEST); 

    3)在html formate中添加font-size。

     String text = ""+"

    "+getString(R.string.itext)+"

    "+"";

    1 – 我正在使用这段代码,这些代码在我的所有设备上都给了我很好的结果。

    如果web是tyour WebView,

     web = (WebView) v.findViewById(R.id.htmlDisplay); // Impostazioni della WebView. final WebSettings webSettings = web.getSettings(); // Set the font size (in sp). webSettings.setDefaultFontSize(20); 

    好的,这是硬编码的

    现在,一个更动态的解决方案(根据您的问题):

    如果您将所需的大小放在整数文件中(多个,您支持的每个屏幕都有一个),您可以这样做以检索其值:

     Resources res = getResources(); float fontSize = res.getInteger(R.integer.font_size); webSettings.setDefaultFontSize(fontSize); 

    假设您的res / values / integers.xml文件与此类似:

     < ?xml version="1.0" encoding="utf-8"?>  20  

    所以在上面的代码中改变这一行

     webSettings.setDefaultFontSize(20); 

     webSettings.setDefaultFontSize(fontSize); 

    2 – 为了加快速度,我使用以下代码

     // Optimize loading times. webSettings.setAppCacheEnabled(false); webSettings.setBlockNetworkImage(true); webSettings.setLoadsImagesAutomatically(true); webSettings.setGeolocationEnabled(false); webSettings.setNeedInitialFocus(false); webSettings.setSaveFormData(false); 

    请注意,我加载了超过7-8行文本:它是一个完整的HTML页面,其中包含用于展开/折叠部分的JavaScript。 然而,加载需要半秒钟。 所以,我猜,7-8行文本将被加载。

    您始终可以使用CSS来更改字体大小:

     String text = ""+"

    "+getString(R.string.text1)+"

    "+""; mWebView.loadData(text, "text/html", "utf-8");

    为了显示出来,正如Digvesh Patel之前所说:

     webview.getSettings().setRenderPriority(RenderPriority.HIGH); webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 

    您可以使用Html.fromHtml()并以HTML格式编写文本。