WebView を備えた Android アプリ (Android SDK 10) があります。その WebView では、固定位置の要素を使用する必要があります。これで、修正された要素に問題があることがわかりましたが、HTML のこのコードには次のような問題があります。
<meta name="viewport"
content="width=100%;
initial-scale=1;
maximum-scale=1;
minimum-scale=1;
user-scalable=no;">
そして、これは Webview の場合:
WebView mWebView = (WebView) findViewById(R.id.webView1);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.getSettings().setSupportZoom(true);
mWebView.setVerticalScrollBarEnabled(true);
mWebView.loadUrl("path/to.html");
zoomcontrolls を使用するとズームできます。ただし、マルチタッチとピンチズームはページをゆがめます。
ピッチズームとマルチタッチズームを無効にしながら、ズームコントロールを機能させ続けることはできますか?
Vikalp Patel の提案により、私はこの解決策にたどり着きました。
CustomWebView mWebView = (CustomWebView) findViewById(R.id.webView1);
mWebView.loadUrl("path/to.html");
CustomWebView.java
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.webkit.WebView;
public class CustomWebView extends WebView {
/**
* Constructor
*/
public CustomWebView(Context context) {
super(context);
}
/**
* Constructor
*/
public CustomWebView(Context context, AttributeSet attrs) {
super(context, attrs);
}
/*
* (non-Javadoc)
*
* @see android.webkit.WebView#onTouchEvent(android.view.MotionEvent)
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getPointerCount() > 1) {
this.getSettings().setSupportZoom(false);
this.getSettings().setBuiltInZoomControls(false);
} else {
this.getSettings().setSupportZoom(true);
this.getSettings().setBuiltInZoomControls(true);
}
return super.onTouchEvent(event);
}
}
layout.xml での実装
<package.path.CustomWebView
...
/>
それが誰かを助けることを願っています。