2010-05-09 74 views
22

我正在設計一個在Android瀏覽器中顯示的HTML頁面。考慮這個簡單的例子頁:如何讓WVGA Android瀏覽器停止縮放我的圖像?

<html> 
<head><title>Simple!</title> 
</head> 
<body> 
<p><img src="http://sstatic.net/so/img/logo.png"></p> 
</body> 
</html> 

它看起來在標準HVGA電話(480)就好了,但在華電國際WVGA規格(480×800像素或480x854),內置的瀏覽器將自動縮放圖像了;它看起來很醜。

我讀過,我應該能夠使用這個標籤,迫使瀏覽器停止縮放我的網頁:

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=0;" /> 

......但這一切確實是禁止用戶縮放(縮放按鈕消失);它實際上並不妨礙瀏覽器擴展我的圖像。調整比例因子(全部設置爲2.0或0.5)完全沒有效果。

如何強制WVGA瀏覽器停止縮放我的圖像?

+0

我注意到,配置「默認縮放」在瀏覽器的設置中設置爲「遠」會禁用圖像縮放,但我不能指望我的所有用戶都這樣做。 – 2010-05-09 15:56:32

+1

在Android 2.1/API級別7中添加了一個設置「默認縮放」的API。webview.getSettings()。setDefaultZoom() – 2010-10-12 09:08:01

+0

對於這個問題,我構建了一個網站,而不是一個Android應用程序WebView,所以我不能使用Android API。 – 2010-10-12 21:22:06

回答

32

啊,通過搜索Android源代碼找到它。在「視口」元標記中提供了一個新的Android專用「target-densityDpi」設置;據我所知,這是完全沒有文件,除了簽入評論!

爲WebView添加dpi支持。

在「視口」元標記中,您可以指定「target-densityDpi」。 如果未指定,則使用默認的160dpi。 然後,在視口標籤中指定的1.0比例因子表示在G1上爲100% ,在Sholes上爲150%。如果將「target-densityDpi」設置爲 「device-dpi」,則1.0比例因子在G1和Sholes上均爲100%。

實現了Safari的window.devicePixelRatio和css媒體查詢 device-pixel-ratio。

所以如果你使用「設備DPI」和修改字體,大小和圖像的CSS SRC取決於window.devicePixelRatio,您可以 肖爾斯/激情得到更好的頁面。

以下是「target-densityDpi」的選項列表。

device-dpi:使用設備的本地dpi作爲目標dpi。 low-dpi:120dpi medium-dpi:160dpi,這也是今天的默認設置 high-dpi:240dpi :我們將70和400之間的任何數字視爲有效的目標dpi。

+0

目標密度Dpi的支持已於2009年9月21日添加到Android Source,至少在Android 1.6中似乎沒有包含。它被添加在這個提交中:https://android.git.kernel.org/?p = platform/external/webkit.git; a =commit; h = f10585d69aaccf4c1b021df143ee0f08e338cf31 – 2010-10-12 09:09:15

+0

@morganchristiansson這是真的,但有很少的Android 1.6野外的HDPI設備。 LG有幾款適合這種情況的手機......這些人可能會有不好的經歷。 – 2010-10-12 21:21:20

+0

我的目標是LDPI /小型設備,如HTC Tattoo和SE X10 Mini,它們都是Android 1.6。 – 2010-10-13 08:41:16

相關問題