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