Ajuster la taille de police de WebView Android
Comment ajuster la taille de la police de Android WebView
? La suite semble avoir aucun effet:
private void fontSizePlus() {
fontSize = (fontSize < FONT_SIZE_MAX) ? fontSize + FONT_SIZE_INCREMENT : fontSize;
this.changeFontSize(fontSize);
}
private void fontSizeMinus() {
fontSize = (fontSize > FONT_SIZE_MIN) ? fontSize - FONT_SIZE_INCREMENT : fontSize;
this.changeFontSize(fontSize);
}
private void changeFontSize(int value) {
String js = "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '" + value + "%';";
mWebView.loadUrl("javascript:(function() { " + js + " })()");
}
Où la WebView
et les constantes ont été initialisé de la façon suivante:
private final static int FONT_SIZE_DEFAULT = 100;
private final static int FONT_SIZE_MIN = 50;
private final static int FONT_SIZE_MAX = 150;
private final static int FONT_SIZE_INCREMENT = 5;
private int fontSize = FONT_SIZE_DEFAULT;
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.index);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/index.htm");
}
Vous devez vous connecter pour publier un commentaire.
@rob réponse et commentaire m'a orienté dans la bonne direction.
D'abord vous assurer que toutes les tailles de police sont par rapport à la taille de police par défaut. Si vous utilisez des valeurs absolues, le code suivant ne fonctionnera pas sur ces éléments.
Alors:
En changeant la valeur de la taille de police par défaut toutes les tailles de police relatives sont ajustées en conséquence. Cela vous donne beaucoup plus de contrôle que
WebSettings.setTextSize (WebSettings.TextSize t)
.fontSizePlus
etfontSizeMinus
merciJe ne sais pas qui
webkitTextSizeAdjust
est pris en charge dans autre chose que safari/le navigateur safari mobile.Essayer
WebSettings.setTextSize (WebSettings.TextSize t)
plutôt que d'essayer de le faire avec javascript.
Brian Cooley m'a aidé avec ce...essayer...