GestureDetector手势,这个应用很广泛,也可以衍生初很多知识点,我从基础开始写起,原来一直想学一些高含量的技术,后来发现很多基础知识点都没完全理解,每当遇到不明白的小知识点的时候还要上网查,用过一次两次还记不住,好高骛远,踏踏实实把每个知识点的所有角角落落的零碎知识整理一下,基础扎实才会飞的更高;
下面把GestureDetector的生命周期代码运行一边,看具体代码:
public class MainActivity extends Activity implements OnGestureListener {
private GestureDetector gesture ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gesture = new GestureDetector(this) ;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return gesture.onTouchEvent(event) ;
}
@Override
public boolean onDown(MotionEvent arg0) {
System.out.println("******===>onDowm");
return false;
}
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2, float x,
float y) {
System.out.println("******===>onFling");
return false;
}
@Override
public void onLongPress(MotionEvent arg0) {
System.out.println("******===>onLongPress");
}
@Override
public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
System.out.println("******===>onScroll");
return false;
}
@Override
public void onShowPress(MotionEvent arg0) {
System.out.println("******===>onShowPress");
}
@Override
public boolean onSingleTapUp(MotionEvent arg0) {
System.out.println("******===>onSingleTapUp");
return false;
}
}
运行之后经过测试可以发现:当用户按下的时候会首先执行onDown方法,onSingleTapUp是点击一下之后马上抬起按钮所触动的方法,onShowPress是点击之后所执行的方法(点击之后手机不挪动);onLongPress是点击之后过段时间所执行的方法,是在手指不拖动的前提之下,如果手指不挪动,执行顺序是:onDown--》onShowPrsss--》onLongPress。onScorll是手指滚动的时候所触发的方法,onFling是拖过多触发的方法,其中的参数就是拖过的x个y的值得变化,手机点击屏幕之后从屏幕的开始拖出屏幕所触发的方法顺序是:onDown--》onScorll--》onFling
本文出自 “清甘茶” 博客,请务必保留此出处http://shunshuncon.blog.51cto.com/8232441/1641516
原文地址:http://shunshuncon.blog.51cto.com/8232441/1641516