手势识别

本文详细介绍了Android平台上的手势识别功能实现方法。通过自定义SampleGuest类实现OnGestureListener接口,可以捕捉并处理屏幕上的各种手势操作,如滑动、长按等。文中还提供了具体的代码示例帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

手势识别

[功能]
何为手势识别? 比如:你在屏幕上从左至右划出的一个动作 这就是手势 能够识别这个的就是 手势识别

[思路]
1. android 有一个手势识别的类:OnGestureListener
2. 在 GestureDetector() 中使用上面的class 即可 系统就会把手势交由该类来处理


[代码]
1. 该类的定义
public class SampleGuest implements OnGestureListener {
Activity activity;

public SampleGuest(Activity a){
activity = a;
}

// called automatically, any screen action will Triggered it
public boolean onTouchEvent(MotionEvent me){
return gesture.onTouchEvent(me);
}

@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("TAG","[+++++++++++][onDown]");
return true;
}

@Override
//e1, the begin of ACTION_DOWN MotionEvent
//e2, the end of ACTION_DOWN MotionEvent
// velocityX, the motion speed in X
// velocityY:the motion speed in y
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
if ((e1.getX() - e2.getX() > VALUE_DISTANCE)
&& Math.abs(velocityX) > VALUE_SPEED) {
Log.d("TAG","[+++++++++++][onFling][Fling left]");
} else if ((e2.getX() - e1.getX() > VALUE_DISTANCE)
&& Math.abs(velocityX) > VALUE_SPEED) {
Log.d("TAG","[+++++++++++][onDown][Fling right]");

}
return true;
}

@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("TAG","[+++++++++++][onLongPress]");
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
Log.d("TAG","[+++++++++++][onScroll]");
return true;
}

@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("TAG","[+++++++++++][onShowPress]");
}

@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("TAG","[+++++++++++][onSingleTapUp]");
return true;
}

}

(大家可以自己做一些手势 然后看 LogCat 就会知道是什么手势了)


2. 如何使用

SampleGuest sg = new SampleGuest(this);
GestureDetector gesture = new GestureDetector(sg);



over!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值