web-dev-qa-db-fra.com

Comment changer la taille de la police dans un WebView Android?

Comment pouvez-vous changer manuellement la taille de la police d'une vue Web? par exemple. Lorsque la page se charge dans la vue Web, la taille de la police est de 24 pt. et beaucoup trop grand pour l'écran de mon Android. J'ai examiné les "paramètres Web", mais il semble que les deux ne sont pas liés.

Merci

33
Scott

Je l'ai finalement trouvé: -

WebSettings webSettings = webView.getSettings();

setTextSize ou

webSettings.setTextSize(WebSettings.TextSize.SMALLEST);

Celui-ci fonctionne aussi: -

webSettings.setDefaultFontSize(10);
95
Scott

Il semble que, de nos jours, la méthode préférée, c'est-à-dire non amortie, consiste à modifier le zoom du texte, comme ceci:

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

C’est ce que j’utilise lorsque je veux permettre à l’utilisateur de changer la taille du texte/zoom dans un 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);
}

Sur Actionbar Item click, j'appelle soit textSmaller() ou textBigger() pour modifier la taille du texte.

16
Philipp Jahoda

J'utilise Javascript pour faire ce genre de choses parce que cela fonctionne pratiquement toujours. Même si des fichiers CSS sont utilisés dans votre code HTML

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

bien sûr, vous devez modifier les tailles et les couleurs pour celles dont vous avez besoin

7
bvanvelsen

Si vous souhaitez augmenter ou réduire la taille de la police de WebView de manière dynamique, utilisez ces lignes de 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");
    // 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