Ответ 1
Наконец я нашел: -
WebSettings webSettings = webView.getSettings();
либо setTextSize
, либо
webSettings.setTextSize(WebSettings.TextSize.SMALLEST);
Этот тоже работает: -
webSettings.setDefaultFontSize(10);
Как вы можете вручную изменить размер шрифта веб-представления? например Когда страница загружается в 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
Элемент click, я вызываю либо 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');");
конечно, вам нужно изменить размеры и цвета на нужные вам
Если вы хотите увеличить или уменьшить размер шрифта WebView динамически, чем использовать эти строки кода:
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();
}