41 Stimmen

Wie ändert man die Schriftgröße in einem Android WebView?

Wie können Sie die Schriftgröße eines Webviews manuell ändern? z.B. Wenn die Seite im Webview geladen wird, ist die Schriftgröße wie 24pt und viel zu groß für den Bildschirm meines Androids. Ich habe mir die "WebSettings" angesehen, aber anscheinend haben die beiden nichts miteinander zu tun.

Danke

105voto

Scott Punkte 1491

Ich habe es endlich gefunden:-

WebSettings webSettings = webView.getSettings();

entweder setTextSize oder

webSettings.setTextSize(WebSettings.TextSize.SMALLEST);

Dies funktioniert auch:-

webSettings.setDefaultFontSize(10);

40voto

pelotasplus Punkte 9346

Es scheint, dass heutzutage der bevorzugte Weg, d. h. nicht veraltet, ist, den Textzoom zu ändern, wie hier:

WebSettings Einstellungen = mWebView.getSettings();
settings.setTextZoom(90); // wo 90 für 90 % steht; Standardwert ist ... 100

19voto

Philipp Jahoda Punkte 49918

Dies ist das, was ich benutze, wenn ich dem Benutzer ermöglichen will, die Textgröße / Zoom in einem WebView zu ändern:

private WebView mWebView;

// WebView initialisieren und ähnliches ...

private void textSmaller() {

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

private void textBigger() {

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

Bei einem Klick auf das Actionbar-Element rufe ich entweder textSmaller() oder textBigger() auf, um die Textgröße zu ändern.

7voto

bvanvelsen Punkte 1721

Ich benutze Javascript, um solche Dinge zu tun, weil es praktisch immer funktioniert. Auch wenn in deinem HTML CSS-Dateien verwendet werden.

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

Natürlich musst du die Größen und Farben entsprechend anpassen, je nach Bedarf.

1voto

Mujahid Khan Punkte 1385

Wenn Sie die Schriftgröße des WebView dynamisch erhöhen oder verringern möchten, verwenden Sie diesen Code:

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");
    // JavaScript aktivieren / deaktivieren
    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();
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X