我的应用程序是一个简单的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