我已尝试以下内容根据设备屏幕大小调整网页.
mWebview.setInitialScale(30);
Run Code Online (Sandbox Code Playgroud)
然后设置元数据视口
<meta name="viewport" content="width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=0;"/>
<meta name="viewport" content="width=device-width, target-densityDpi=medium-dpi"/>
Run Code Online (Sandbox Code Playgroud)
但没有任何作用,网页没有固定到设备屏幕大小.
谁能告诉我怎么弄这个?
WebSettings中有一些与缩放相关的方法:
我发现他们在某些设备上的工作方式不同 例如,在我的Galaxy S上,默认情况下启用缩放功能,但在LG P500上它被禁用(现在我不知道如何启用仅捏缩放,但隐藏缩放按钮).
在P500上,当我打电话时,setBuiltInZoomControls(true)我得到这两个变体工作(多点触控和按钮).
如何在LG P500等设备上启用多点触控缩放和禁用缩放按钮?(另外,我知道HTC设备上存在同样的问题)
更新:这里几乎是解决方案的完整代码
if (ev.getAction() == MotionEvent.ACTION_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_1_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_2_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_3_DOWN) {
if (multiTouchZoom && !buttonsZoom) {
if (getPointerCount(ev) > 1) {
getSettings().setBuiltInZoomControls(true);
getSettings().setSupportZoom(true);
} else {
getSettings().setBuiltInZoomControls(false);
getSettings().setSupportZoom(false);
}
}
}
if (!multiTouchZoom && buttonsZoom) {
if (getPointerCount(ev) > 1) {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
此代码位于我onTouchEvent重写的WebView方法中.
我正在使用此代码,它完全按照我的意愿工作.但是我必须在双击时实现另一个功能,并且想要禁用双击缩放(但保持缩放缩放功能).
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NORMAL);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.setInitialScale(1);
Run Code Online (Sandbox Code Playgroud)
试图手动计算比例,没有运气(这感觉很复杂). 在Webview上禁用双击缩放/取消缩放
有没有办法使用setUseWideViewPort和Zoomcontrolls但只禁用或覆盖双击缩放?