Как изменить FontSize в Android WebView? - PullRequest
37 голосов
/ 26 сентября 2010

Как вы можете вручную изменить размер шрифта веб-просмотра?Например, когда страница загружается в веб-просмотре, размер шрифта составляет около 24pt.и слишком большой для экрана моего андроида.Я посмотрел в "websettings", но кажется, что оба не связаны.

Спасибо

Ответы [ 5 ]

99 голосов
/ 26 сентября 2010

Я наконец нашел его: -

WebSettings webSettings = webView.getSettings();

или setTextSize или

webSettings.setTextSize(WebSettings.TextSize.SMALLEST);

Этот тоже работает: -

webSettings.setDefaultFontSize(10);
30 голосов
/ 02 июля 2014

Кажется, что в настоящее время предпочтительным способом, то есть не амортизированным, является изменение масштаба текста, например:

WebSettings settings = mWebView.getSettings();
settings.setTextZoom(90); // where 90 is 90%; default value is ... 100
17 голосов
/ 19 марта 2014

Это то, что я использую, когда хочу разрешить пользователю изменить размер текста / увеличить в 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(), чтобы изменить размер текста.

7 голосов
/ 17 сентября 2012

Я использую 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');");

Конечно, вам нужно изменить размеры и цвета на те, которые вам нужны

0 голосов
/ 07 декабря 2018

Если вы хотите динамически увеличивать или уменьшать размер шрифта 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();
}
...