Android 使双击在网络视图中工作
我有一个网站,有一些双击功能,所以当你在浏览器中双击android时,它只会缩放。因此,我正在构建一个网络视图,这样我就可以超越双击,让它做出应有的反应Android 使双击在网络视图中工作,android,webview,overriding,double-click,simulate,Android,Webview,Overriding,Double Click,Simulate,我有一个网站,有一些双击功能,所以当你在浏览器中双击android时,它只会缩放。因此,我正在构建一个网络视图,这样我就可以超越双击,让它做出应有的反应 public class myWebView extends Activity{ GestureDetector gs = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
public class myWebView extends Activity{
GestureDetector gs = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView engine = (WebView) findViewById(R.id.web_engine);
engine.getSettings().setJavaScriptEnabled(true);
engine.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
engine.getSettings().setSupportMultipleWindows(true);
engine.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
engine.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
engine.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (gs == null) {
gs = new GestureDetector(
new GestureDetector.SimpleOnGestureListener() {
//overrides the double click
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
// SOME CODE THAT SIMULATES A DOUBLE CLICK
return true;
}
});
}
gs.onTouchEvent(event);
return false;
}
});
engine.loadUrl("http://www.google.com");
}
}
因此,如果双击,OnDoubleTapeEvent(MotionEvent e)函数将执行介于两者之间的任何操作
所以在这一点上,我需要让它执行双击。我可以在那里模拟几次点击吗?试一下:
private GestureDetector gs = null;
private OnTouchListener onTouch = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (gs == null) {
gs = new GestureDetector(
new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
//Double Tap
snapWebView.zoomIn();//Zoom in
return true;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
//Single Tab
snapWebView.zoomOut();// Zoom out
return false;
};
});
}
gs.onTouchEvent(event);
return false;
}
};
最后,将OnTouch事件设置为WebView:
webView.setOnTouchListener(onTouch);
请参阅详细信息:忽略平台的UI约定是一个非常糟糕的主意。双击放大的手势是众所周知的,用户也会使用它,如果你开始用它做不同的事情,你只会让用户生气。我只是为一个大公司员工使用的特定网站做这个手势,并且需要双击功能。我并不是想用android取代网络浏览器。我只是想为一个非常特殊的目的制作一个小应用程序。