webentwicklung-frage-antwort-db.com.de

Wie kann ich die Schriftgröße in einer Android-WebView ändern?

Wie können Sie die Schriftgröße einer Webansicht manuell ändern? z.B. Wenn die Seite in der Webansicht geladen wird, hat die Schriftgröße 24pt. und viel zu groß für den Bildschirm meines Android. Ich habe mir die "Websettings" angesehen, aber es scheint, dass die beiden nicht miteinander zusammenhängen.

Vielen Dank

33
Scott

Ich habe es endlich gefunden: -

WebSettings webSettings = webView.getSettings();

entweder setTextSize oder

webSettings.setTextSize(WebSettings.TextSize.SMALLEST);

Das funktioniert auch: -

webSettings.setDefaultFontSize(10);
95
Scott

Es scheint, dass heutzutage der bevorzugte Weg, dh nicht abgeschrieben, darin besteht, den Textzoom wie folgt zu ändern:

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

Dies ist, was ich verwende, wenn ich dem Benutzer ermöglichen möchte, die Textgröße/zoom in einer WebView zu ändern:

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

Beim Actionbar Item-Klick rufe ich entweder textSmaller() oder textBigger() auf, um die Textgröße zu ändern.

16
Philipp Jahoda

Ich verwende Javascript, um solche Dinge zu tun, weil es praktisch immer funktioniert. Auch wenn in Ihrem HTML-Code 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 müssen Sie die Größen und Farben Ihren Wünschen anpassen

7
bvanvelsen

Wenn Sie die Schriftgröße von WebView dynamisch erhöhen oder verringern möchten, verwenden Sie diese Codezeilen:

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