2012-10-01 11 views
6

Chciałbym ustawić rozmiar czcionki używanej w WebView na konkretny rozmiar w pikselach. Zrobiłem coś podobnego do tego, co jest:Rozmiar czcionki Androida WebView w pikselach

Jednak rozmiar czcionki różni się na różnych urządzeniach. Masz pomysł, jak to działa?

Dzięki!

+0

ponieważ różne urządzenia mają różnej wielkości piksele ... Jeśli naprawdę chcesz ustawić piksele, powinieneś się spodziewać Odmiana s na różnych urządzeniach. Czy masz konkretny powód, dla którego chcesz używać pikseli? – FoamyGuy

+1

Przepraszam, może powinienem był się nad tym zastanowić. Używam pikseli, ale skaluję piksele tak, aby pasowały do ​​rozdzielczości urządzenia. mój klient ma stały piksel, który skaluje się do maksymalnego możliwego rozmiaru (z górnymi dolnymi lub lewymi prawymi krawędziami). wszystko działa idealnie, z wyjątkiem widoku internetowego. –

Odpowiedz

6

Rozwiązanie znalazłem dodając następujący tag meta do kodu HTML

<meta name=\"viewport\" content=\"target-densitydpi=device-dpi\" /> 
+1

Przestarzałe http://www.petelepage.com/blog/2013/02/viewport-target-densitydpi-support-is-being-deprecated/ – Dori

+0

dzięki za poinformowanie nas. Powinienem wtedy spojrzeć na alternatywny sposób. –

+0

działało dobrze dla mnie zgodnie z komentarzem pod linkiem poniżej. – Juanin

2

Możesz użyć widoku webowego, aby uzyskać obiekt ustawień i metodę setDefaultFontSize(int size), aby ustawić domyślny rozmiar czcionki.

na przykład:

myWebView.getSettings().setDefaultFontSize(20); 

Alternatywnie Można użyć setInitialScale(int percentage) sposób na widoku strony internetowej, aby ustawić procent przybliżyć trzeba, można spróbować go z różnymi wielkościami procentowymi i zobaczyć, który chcesz.

na przykład:

myWebView.setInitialScale(85); 

Można również użyć webview dostać to ustawienia obiektu, a następnie wykorzystać setBuiltInZoomControls(boolean value) sposób, aby umożliwić/uniemożliwić użytkownikowi korzystanie z kontrolek domyślnego powiększenia, dzięki czemu można je powiększać w zależności od ich preferencji .

na przykład:

myWebView.getSettings().setBuiltInZoomControls(true); 
0

Żaden że pracował dla mnie, musiałem to zrobić w zamian:

WebSettings settings = wv.getSettings(); 
if (Utils.hasIceCreamSandwich()) 
    settings.setTextZoom((int)(settings.getTextZoom() * 1.2)); 
else { 
    settings.setTextSize(WebSettings.TextSize.LARGER); 
} 
Powiązane problemy