Dopasowanie zawartości strony internetowej do widoku sieci Web (Android)

Proste pytanie.

Staram się rozciągnąć zawartość webview tak, że cała strona wewnątrz jest widoczna. bez przewijania. Przeglądałem dokumenty, ale nie mogę znaleźć żadnej metody z kontrolek zoom i setinitialscale.

Problem z setinitialscale w tym przypadku jest to, że działa inaczej dla różnych stron.

Przykład: 1: wikipedia załaduje się zgodnie z oczekiwaniami z wystarczająco dużym powiększeniem. 2: Google pokaże jednak tylko środek strona.

Heres the code snippet I have

    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);
To wydaje się być alternatywą dla tego, co próbuję zrobić, ale nie mogę go wystarczająco powiększyć.
Author: Ahmad, 2012-01-29

2 answers

Więc ludzie mogą używać tego jako samouczka w przyszłości.

Istnieje kilka sposobów na obsługę powiększeń w Androidzie i dopasowanie stron. Czasami może być dość Temperamentny, a niektóre metody działają lepiej niż inne.

Dla większości ludzi, po prostu użyj tego:

WebView x;

x.setInitialScale(1);

To jest dalsza możliwa zoom. Ale dla niektórych stron wygląda to po prostu brzydko.

To była druga wersja, którą znalazłem

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

To jest ładne wszystko zaokrąglone niż wydaje się po prostu pomniejszyć wystarczająco daleko dla dużo, ale wciąż nie tego szukałem.

A teraz oto ostateczne rozwiązanie, które mam.

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

Zasadniczo to, co robią, jest odpowiedzią na inne pytanie, takie jak to.

 setLoadWithOverviewMode(true) 

Wczytuje Widok sieci Web całkowicie pomniejszony

setUseWideViewPort(true)
Jeśli przeglądarka internetowa będzie miała taki sam rozmiar, to Widok Webview będzie miał taki sam rozmiar (Jeśli więc webview będzie miał rozmiar 50px*50px)
 100
Author: OVERTONE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-10 17:49:29

Próbowałem wszystkich powyższych metod, ale w moim przypadku nic nie działało, dopóki się nie dowiedziałem:

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

Usuń tę linię w pliku html lub po prostu zmień user-scalable = yes,a wszystko będzie dobrze. Prawie jeden dzień Zajęło mi odkrycie tej szalonej linii.

 10
Author: Hoang Huu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-18 09:49:50