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

Установка содержимого веб-страницы внутри webview (Android)

Простой вопрос.

Я пытаюсь растянуть содержимое веб-представления так, чтобы вся веб-страница была видна. без прокрутки. Я просмотрел документы, но не могу найти какие-либо методы из средств управления масштабированием и setinitialscale.

Проблема с setinitialscale в этом случае заключается в том, что она работает по-разному для разных сайтов.

Пример: 1: wikipedia будет загружаться, как и ожидалось, с увеличением достаточно далеко. 2: Google, однако, покажет только центр страницы.

Вот фрагмент кода, который у меня есть

    test1 = (WebView) findViewById(R.id.webview_test_1);
    test2 = (WebView) findViewById(R.id.webview_test_2);
    test3 = (WebView) findViewById(R.id.webview_test_3);

    test1.getSettings().setJavaScriptEnabled(true);
    test2.getSettings().setJavaScriptEnabled(true);
    test3.getSettings().setJavaScriptEnabled(true);

    test1.setInitialScale(12);
    test2.setInitialScale(12);
    test3.setInitialScale(12);

    test1.loadUrl("http://developer.android.com/resources/tutorials/views/hello-tablelayout.html");
    test2.loadUrl("http://www.wikipedia.org/");
    test3.loadUrl("http://www.google.com");

test1.getSettings().setDefaultZoom(ZoomDensity.FAR);

Это похоже на альтернативу тому, что я пытаюсь сделать, но я не могу заставить его масштабировать достаточно далеко.

4b9b3361

Ответ 1

Таким образом, люди могут использовать это как учебник в будущем.

Существует множество способов обработки масштабирования на сайтах android и подгонке. Иногда это может быть довольно темпераментным, а некоторые методы лучше, чем другие.

Для большинства людей просто используйте

WebView x;

x.setInitialScale(1);

Это возможное увеличение расстояния. Но для некоторых сайтов это выглядит просто UGLY.

Это была вторая версия, которую я нашел

test1.getSettings().setDefaultZoom(ZoomDensity.FAR);

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

И теперь это окончательное решение, которое у меня есть.

x.getSettings().setLoadWithOverviewMode(true);
x.getSettings().setUseWideViewPort(true);

В основном, на что они отвечают в этом вопросе.

 setLoadWithOverviewMode(true) 

Загрузка WebView полностью уменьшена

setUseWideViewPort(true)

У вас есть обычный просмотр (например, обычный браузер для рабочего стола), тогда как при ошибке веб-просмотр будет иметь область просмотра, ограниченную его собственными измерениями (так что если веб-просмотр составляет 50 пикселей * 50 пикселей, то окно просмотра будет такого же размера)

Ответ 2

Я пробовал все методы выше, но в моем случае ничего не работало, пока я не узнал:

   <meta name="viewport" content="user-scalable=no"/>

удалите эту строку в html файле или просто измените user-scaleable = yes, и все будет в порядке. Принял меня почти один день, чтобы узнать эту сумасшедшую линию.