Подтвердить что ты не робот

Настройка масштаба для Webview

У меня есть WebView и 2 URL-адреса, чтобы открыть его. Я хочу сделать это, когда я установил уровень масштабирования для 1-го URL-адреса, а затем я перейду на второй URL-адрес, он также должен иметь тот же уровень масштабирования. Прямо сейчас, уровень масштабирования сбрасывается для обоих.

Спасибо, Фара

4b9b3361

Ответ 1

это применимо в этом сценарии, я верю

mWebView.setInitialScale(ZOOM_LEVEL);

где ZOOM_LEVEL, например, может быть 25 для 25% 150 на 150%

Ответ 2

используйте webSettings класс

webview.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);

Обратите внимание, что хотя webSettings доступен с уровня API 1, WebSettings.ZoomDensity доступен с API уровня 7. Хорошо работает для всех разрешений устройств.

Кроме того, чтобы включить масштабирование в webView, добавьте следующий код:

webView.getSettings().setBuiltInZoomControls(true);

Ответ 3

setDefaultZoom устарел.

webview.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);

Поэтому вместо этого вы можете использовать, как показано ниже,

webview.setInitialScale(1);
webview.getSettings().setLoadWithOverviewMode(true); 
webview.getSettings().setUseWideViewPort(true);

Это поможет вам удалить

setDefaultZoom(WebSettings.ZoomDensity.FAR).

Ответ 4

Прежде чем покинуть первую страницу, используйте

int scale = 100 * webView.getScale();

Затем, после загрузки второй страницы, используйте

webView.setInitialScale( scale );

Ответ 5

@John дал правильную идею, но одной команды достаточно, так как вы можете получить и установить до появления страницы:

private class MyWebViewClient extends WebViewClient {
    public void onPageFinished(WebView view, String url) {
        view.setInitialScale((int)(100*view.getScale()));
    }
}

то просто установите это как ваш клиент WebView:

webview.setWebViewClient(new MyWebViewClient());

Ответ 6

Вы можете установить масштабирование на 0,1f

mWebView.zoomBy(0.1f);

Ответ 7

попробуйте эту вещь

int default_zoom_level=100;
Point Scroll=new Point(0,0);
webview1.setInitialScale(default_zoom_level);
    webview1.loadData("url");

После выполнения zoomIn/ZoomOut или Scrolling.Since Scale может измениться так, чтобы вычислять масштаб и прокручивать вдоль оси X и Y.

int current_scale_level=(int)webview1.getScale()*100;
Scroll.x=webview1.getScrollX();
Scroll.y=webview1.getScrollY();

then before loading of next webview do this

webview2.setInitialScale(current_scale_level);
    webview2.loadData("url");
webview2.scrollTo(Scroll.x,Scroll.y);

Ответ 8

Я нашел этот блог полезным:

Это поможет вам установить начальный уровень масштабирования и на контент изменения смены веб-изображений.

//Задайте начальный ход строки поиска       mSeekBar.setProgress(mWebView.getSettings() getTextZoom()/25.);

    // Set a change listener for seek bar
    mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
            /*
                public abstract void setTextZoom (int textZoom)
                    Sets the text zoom of the page in percent. The default is 100.

                Parameters
                    textZoom : the text zoom in percent
            */

            // Zoom the web page text
            // We will allow text zooming 25% to 300%
            mWebView.getSettings().setTextZoom(i*25);
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });

http://android--code.blogspot.in/2016/01/android-how-to-change-webview-text-size.html