如何在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的

     

用于从布局设置文本大小 –

 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格式编写文本。