package com.aslibra.test;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.OnGestureListener;
import android.widget.LinearLayout;
import android.widget.TextView;
public class touchGesture extends Activity implements OnGestureListener {
private LinearLayout main;
private TextView viewA;
private GestureDetector gestureScanner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gestureScanner = new GestureDetector(this);
gestureScanner.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener(){
public boolean onDoubleTap(MotionEvent e) {
viewA.setText("-" + "onDoubleTap" + "-");
//双击时产生一次
Log.v("test", "onDoubleTap");
return false;
}
public boolean onDoubleTapEvent(MotionEvent e) {
//双击时产生两次
Log.v("test", "onDoubleTapEvent");
return false;
}
public boolean onSingleTapConfirmed(MotionEvent e) {
viewA.setText("-" + "onSingleTapConfirmed" + "-");
//短快的点击算一次单击
Log.v("test", "onSingleTapConfirmed");
return false;
}
});
main = new LinearLayout(this);
main.setBackgroundColor(Color.GRAY);
main.setLayoutParams(new LinearLayout.LayoutParams(320,480));
main.setOrientation(LinearLayout.VERTICAL);
viewA = new TextView(this);
viewA.setBackgroundColor(Color.YELLOW);
viewA.setTextColor(Color.BLACK);
viewA.setTextSize(16);
viewA.setLayoutParams(new LinearLayout.LayoutParams(320,50));
main.addView(viewA);
setContentView(main);
}
@Override
public boolean onTouchEvent(MotionEvent me) {
return gestureScanner.onTouchEvent(me);
}
@Override
public boolean onDown(MotionEvent e) {
//viewA.setText("-" + "DOWN" + "-");
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
//viewA.setText("-" + "FLING" + "- "+velocityX + "- "+velocityY);
Log.v("test", "onFling "+e1.getX()+" "+e2.getX());
return true;
}
@Override
public void onLongPress(MotionEvent e) {
//viewA.setText("-" + "LONG PRESS" + "-");
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
//viewA.setText("-" + "SCROLL" + "- "+distanceX + "- "+distanceY);
Log.v("test", "onScroll "+e1.getX()+" "+e2.getX());
return true;
}
@Override
public void onShowPress(MotionEvent e) {
//viewA.setText("-" + "SHOW PRESS" + "-");
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
Log.v("test", "onSingleTapUp");
//viewA.setText("-" + "SINGLE TAP UP" + "-"+ i++);
return true;
}
}
参考资料:
1 GestureDetector and GestureDetector.OnGestureListener
2 how to implement android double tap?
原创内容如转载请注明:来自 阿权的书房
<script>
//<![cdata[
document.write("<br />本帖地址:<a href=\""+window.location+"\">"+window.location+"</a>");
//]]>
</script>
本帖地址:http://www.aslibra.com/blog/post/android_GestureDetector.php
分享到:
相关推荐
// 这里执行双击事件处理 button1_DoubleClick(this, EventArgs.Empty); } } } ``` 在这个示例中,`clickTimer_Tick` 方法会在单击事件发生后启动的定时器触发时运行。如果在此期间没有再次触发单击事件,...
// 注册双击事件处理程序 button.DoubleClick += Button_DoubleClick; } private void Button_DoubleClick(object sender, EventArgs e) { MessageBox.Show("Double Click Detected!"); } } ``` #### 四、...
7. 最后,为了提高用户体验,可以考虑使用AJAX技术实现异步双击事件处理,避免每次双击都需要刷新整个页面,提高网页的响应速度。 通过以上步骤,你可以实现一个功能完善的ASP.NET GridView双击事件处理系统。这个...
- 当接收到WM_LBUTTONDBLCLK消息时,执行相应的双击事件处理代码,例如弹出消息框或执行特定功能。 4. **Visual Studio 2012 使用** - 使用VS2012打开项目,确保已经安装了.NET Framework 4.5或更高版本,因为这...
// 双击事件处理代码 console.log('Element was double-tapped!'); }); }); ``` 在上面的代码中,`.element`是你希望监听双击事件的元素选择器,当用户对这个元素进行双击操作时,会执行回调函数中的代码。 **四...
ListBox控件的双击事件处理是实现复杂用户界面交互的关键部分。通过监听`MouseDoubleClick`事件,我们可以捕捉用户的双击操作,并根据具体需求执行相应的逻辑。无论是打开新窗口、加载数据还是执行其他任务,合理...
本篇文章将深入探讨如何在Visual Studio 2012中利用`DataGrid`控件实现双击事件处理以及如何从选定的行中获取数据。 首先,我们需要了解`DataGrid`控件的基本用法。`DataGrid`可以与各种数据源绑定,如数组、...
// 双击事件处理代码 console.log('Double tap detected!'); }); }); ``` 在这个例子中,`.element`是希望监听双击事件的元素,当该元素被双击(无论是鼠标还是触摸)时,控制台将打印出'Double tap detected!'...
在给定的`DoubleActivity.java`文件中,可能包含了一个实现了双击事件处理的类。这个类可能会扩展`MouseListener`,并在`mouseDoubleClick`方法内编写具体的双击行为处理代码。例如,如果这个类是一个用于展示文件...
Android SDK并未提供内置的双击事件处理,但我们可以利用`OnTouchListener`配合计时器实现。在`OnTouchListener`的`onTouch()`方法中,记录每次点击的时间差,如果连续两次点击的时间差小于某个阈值,就认为是双击:...
// 在这里编写你的双击事件处理代码 } ``` 3. **区别与应用场景** - 单击事件通常用于执行简单的操作,如打开新窗口、显示信息或执行一次性的命令。 - 双击事件通常用于提供更复杂的交互,如编辑控件内容(如...
// 在这里编写你的双击事件处理代码,例如打开一个新的窗口或者编辑选中项 } ``` 以上就是如何在Silverlight 4中通过Visual Studio 2010实现DataGrid控件的双击事件模拟。这种方法虽然比直接的双击事件稍微复杂...
总的来说,"js单击事件和双击事件并存绑定"是一个涉及到事件处理、事件冒泡、事件监听和计时器等多方面知识的问题。通过合理地使用这些技术,开发者可以创建出更加丰富和精确的用户交互体验。在实际项目中,根据需求...
// 在这里编写你的双击事件处理逻辑 }); ``` 在上述代码中,`myChart.on`方法用于添加事件监听器,`'legend.dblclick'`是事件名,参数`params`是一个包含事件相关信息的对象,例如图例项的名称`name`。你可以根据`...
本文将深入探讨如何在FullCalendar中实现双击事件功能,包括源码修改和扩展方法,以兼容不同版本。 ### 1. 源码版双击事件 在源码版FullCalendar中添加双击事件功能,你需要直接修改FullCalendar的核心代码。首先...
在本文中,我们将深入探讨Silverlight中的双击事件处理,特别是在按钮控件上的应用。Silverlight是一种基于.NET Framework的富互联网应用程序(RIA)技术,它提供了丰富的用户界面和交互功能,其中包括对用户输入...
在echarts点击事件基础上添加单击和双击事件,使单双击事件并存。该资源为用html和jquery实现的简单的单双击事件并存的demo。
总结来说,为DataGrid的行添加双击事件主要是通过DataGrid的ItemDataBound事件,结合JavaScript的事件处理来实现的。这种做法允许我们在不改变DataGrid原有功能的基础上,增加用户交互,提高用户体验。同时,需要...
在Android开发中,用户界面(UI)的交互是至关重要的,而控件的单击与双击事件处理是其中常见的需求。本主题将详细讲解如何实现Android控件的单双击判断处理,这对于提高用户体验至关重要。 首先,我们需要理解单击...
总的来说,Silverlight中的双击事件处理是一个实用的功能,可以帮助提升用户体验,提供更直观的交互。理解并掌握如何在不同类型的UI元素上正确实现双击事件,是提升Silverlight应用程序功能和用户体验的关键。