web-dev-qa-db-ja.com

Android WebViewでフォントサイズを変更するには?

WebViewのフォントサイズを手動で変更するにはどうすればよいですか?例えばWebViewでページがロードされると、フォントサイズは24ptのようになります。 Androidの画面には大きすぎます。 「ウェブ設定」を調べましたが、この2つは関連していないようです。

ありがとう

38
Scott

ついに見つけました:-

WebSettings webSettings = webView.getSettings();

setTextSizeまたは

webSettings.setTextSize(WebSettings.TextSize.SMALLEST);

これも動作します:-

webSettings.setDefaultFontSize(10);
101
Scott

最近では、この方法のようにテキストズームを変更することが減価償却されない方法の方が好まれているようです。

WebSettings settings = mWebView.getSettings();
settings.setTextZoom(90); // where 90 is 90%; default value is ... 100
31
pelotasplus

これは、WebViewでユーザーにテキストサイズの変更/ズームを有効にしたいときに使用するものです。

_private WebView mWebView;

// init web view and stuff like that ...


private void textSmaller() {

    WebSettings settings = mWebView.getSettings();
    settings.setTextZoom(settings.getTextZoom() - 10);
}

private void textBigger() {

    WebSettings settings = mWebView.getSettings();
    settings.setTextZoom(settings.getTextZoom() + 10);
}
_

Actionbarアイテムのクリックで、textSmaller()またはtextBigger()のいずれかを呼び出して、テキストサイズを変更します。

17
Philipp Jahoda

Javascriptを使用してこのようなことを行うのは、実際には常に機能するからです。 HTMLで使用されているCSSファイルがあっても

mWebView.loadUrl("javascript:(document.body.style.backgroundColor ='red');");
mWebView.loadUrl("javascript:(document.body.style.color ='yellow');");
mWebView.loadUrl("javascript:(document.body.style.fontSize ='20pt');");

もちろん、サイズと色を必要なものに変更する必要があります

7
bvanvelsen

次のコード行を使用するよりも、WebViewのフォントサイズを動的に増減する場合:

WebView mWebView;
int fontSize;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mWebView = findViewById(R.id.webview);
    mWebView.loadUrl("file:///Android_asset/sample.html");
    // enable / disable javascript
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setSupportZoom(true);
    mWebView.getSettings().setBuiltInZoomControls(true);
    mWebView.getSettings().setDisplayZoomControls(true);
    fontSize = mWebView.getSettings().getDefaultFontSize();
}
 private void fontSizePlus() {
    fontSize++;
    this.changeFontSize(fontSize);
}

private void fontSizeMinus() {
    fontSize--;
    this.changeFontSize(fontSize);
}

private void changeFontSize(int value) {
    mWebView.getSettings().setDefaultFontSize(value);
}

public void Inc(View view) {
    fontSizePlus();
}

public void Dec(View view) {
    fontSizeMinus();
}
0
Mujahid khan