手势在 Android 中称为 Fling.
利用 OnGestureListener 来监听用户的手势动作。用 OnTouchListener 来监听用户的触屏事件。
1 、首先继承 OnTouchListener 和 OnGestureListener 接口
2 、创建一个手势探测器
mGestureDetector = new GestureDetector( this );
3 、在重写的 OnTouch 方法中返回探测器探测的事件
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return mGestureDetector .onTouchEvent(event);
}
4 、给界面上的控件设置 Touch 监听,并设置为可以长按。
Eg: TextView tv=(TextView)findViewById(R.id. tv );
tv.setOnTouchListener( this );
tv.setLongClickable( true );
5 、这样就可以在重写的 OnFling 方法中自定义判断用户的手势
一个合理的手势必须超过一定的移动距离和一定的移动速度
用户可以自动最小距离和最低速度
Eg:// 最小距离
private static final int FLING_MIN_DISTANCE = 100;
// 最低速度
private static final int FLING_MIN_VELOCITY = 200;
当用户的动作符合手势动作的要求,就可以在 OnFling 中根据手势的类型进行对应的操作
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE
&& Math.abs (velocityX) > FLING_MIN_VELOCITY ) {
// 向左
} else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE
&& Math.abs (velocityX) > FLING_MIN_VELOCITY ) {
// 向右
} else if (e1.getY()-e2.getY()> FLING_MIN_DISTANCE
&&Math.abs (velocityY)> FLING_MIN_VELOCITY ) {
// 向上
} else if (e2.getY()-e1.getY()> FLING_MIN_DISTANCE
&&Math.abs (velocityY)> FLING_MIN_VELOCITY ) {
// 向下
}
return false ;
}
手势运用:
结合手势,来对界面上的控件进行对应操作,可以大大的提高用户体验。
1405

被折叠的 条评论
为什么被折叠?



