我的應用程序是一個簡單的WebView
「包裝器」,它以固定的橫向顯示網頁,頁面有一個居中的div,寬度爲760px,高度爲415px,這應該可以在所有設備上縮放顯示,因此它(大致)適合屏幕,用戶不能改變縮放比例...我已經差不多除了縮放之外,還有一切工作。通過WebView正確縮放Android設備上的網站
我在網頁上有以下視窗meta標籤:
<meta name="viewport" content="width=device-width, target-densityDpi=device-dpi, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
清單的WebView
包裝.apk
我創建如下:
<supports-screens android:smallScreens="true"
android:normalScreens="true" android:largeScreens="true"
android:anyDensity="true" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name="{my name}"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
我應該指出,最初的.apk
目標是Android 2.2,我最近更改爲2.3.1,並在清單中添加了另一行,但這對任何內容都沒有影響:
android:xlargeScreens="true"
我添加到.java
以下代碼:
webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webview.setScrollbarFadingEnabled(false);
webview.getSettings().setSupportZoom(false);
webview.getSettings().setBuiltInZoomControls(false);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
對於這個問題的目的只是假設,對整個網站的唯一內容如下<div>
:
<div style="margin: auto; position:relative; align:center; top:0px; width:760px; height:415px; background-color:#000000">
我的問題是,我不能在所有Android設備上提出「一刀切」的擴展解決方案,我自己承擔的所有工作都很好。
我試過這三個不同的設備,一個平板電腦和兩個電話,並在<div>
層的左側,右側和底部有一個很大的差距。看起來760像素的寬度在每個設備上都有大約50px的差距,每個設備上都有相同的底部差距,我所要做的就是擴大範圍,以便大致填滿所有設備上的屏幕。
我的電話說,它得到了854 window.innerWidth
與1.5 window.devicePixelRatio
,如果我更改初始和最大規模1.12 <div>
層適合幾乎完美我的設備上。該表說它有window.innerWidth
爲980,window.devicePixelRatio
爲1.0,似乎喜歡約1.27的比例。我不知道第三個設備的細節,但是使用1.1似乎可以做到這一點。
當然,改變初始縮放並不是一個解決方案,甚至嘗試它會是一個完整的惡夢,所以,手指交叉,誰能告訴我,我失蹤,會使這項工作的盲目顯而易見的事情?或者我只是要求不可能自動將視圖縮放到固定尺寸<div>
?
歡迎來到Stack Overflow!只要你有能力,一定要把你的答案標記爲已接受,這樣其他人就會知道有解決方案。 – 2011-12-23 10:47:20
謝謝喬納森!我已經編輯了我的問題和答案,應該向任何碰到它的人提供他們需要的所有東西,以便在幾乎所有設備上都可以使用簡單的.apk webview包裝器來獲得面向風景的固定寬度網站。 – 2012-01-03 11:18:44