你如何手动更改webview的字体大小?例如,当页面在webview中加载时,字体大小为24pt。这对于我的Android屏幕来说太大了。我研究了"websettings",但似乎两者没有关联。
谢谢
你如何手动更改webview的字体大小?例如,当页面在webview中加载时,字体大小为24pt。这对于我的Android屏幕来说太大了。我研究了"websettings",但似乎两者没有关联。
谢谢
我终于找到了它:-
WebSettings webSettings = webView.getSettings();
无论是setTextSize
还是
webSettings.setTextSize(WebSettings.TextSize.SMALLEST);
这个也可以工作:
webSettings.setDefaultFontSize(10);
现在似乎更倾向于使用不被弃用的方式来改变文本缩放比例,就像这样:
WebSettings settings = mWebView.getSettings();
settings.setTextZoom(90); // where 90 is 90%; default value is ... 100
当我想让用户在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()
来改变文本大小。
我使用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');");
loadUrl()
之前漏掉了mWebView.
。此外,加载这行代码不会改变字体大小,但会在屏幕上显示字体大小... - RaptorsetJavaScriptEnabled
设置为 true
。 - dees91WebView 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();
}