您的位置:首页 > 编程语言 > Go语言

Google glass GDK - 手势操作

2014-07-23 15:05 169 查看
发现在使用多个卡片或者其他啥的时候,onKeyDown事件不起作用,所以弄清楚了GDK的手势操作,写个笔记记录记录~

我们先创建一个卡片和手势检测器

// 创建卡片
private Card mCard;
// 手势检测器
private GestureDetector mGestureDetector;


然后在onCreate方法中初始化我们的变量

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
mCard = new Card(this);
mGestureDetector = createGestureDetector(this);
mCard.setText("手势识别");
setContentView(mCard.getView());
}


createGestureDetector是我们新建的一个函数,用于实例化手势检测器并绑定事件


private GestureDetector createGestureDetector(Context context){
GestureDetector gestureDetector = new GestureDetector(context);
//
// 基本的按键事件
//
gestureDetector.setBaseListener(new GestureDetector.BaseListener() {
@Override
public boolean onGesture(Gesture arg0) {
// TODO Auto-generated method stub
// 轻拍
if(arg0 == Gesture.TAP){
mCard.setText("一个手指轻拍=>播放|暂停");
}else if(arg0 == Gesture.TWO_TAP){
// 双指轻拍
mCard.setText("两个手指轻拍=>弹出菜单");
}else if(arg0 == Gesture.LONG_PRESS){
// 长按
mCard.setText("长按=>退出");
}else if(arg0 == Gesture.SWIPE_LEFT){
mCard.setText("向后=>上一首");
}else if(arg0 == Gesture.SWIPE_RIGHT){
mCard.setText("向前=>下一首");
}else if(arg0 == Gesture.SWIPE_DOWN){
mCard.setText("向下=>后台运行");
}else{
return false;
}
setContentView(mCard.getView());
return true;
}
});
//
// 监听手指数
//
gestureDetector.setFingerListener(new GestureDetector.FingerListener() {

@Override
public void onFingerCountChanged(int arg0, int arg1) {
// TODO Auto-generated method stub
System.out.println("手指:原先=" + arg0 + " 当前:" + arg1);
}
});
//
// 滚动事件
//
gestureDetector.setScrollListener(new GestureDetector.ScrollListener() {

@Override
public boolean onScroll(float arg0, float arg1, float arg2) {
// TODO Auto-generated method stub
System.out.println("滚动:arg0 = " + arg0 + " arg1=" + arg1 + " arg2="+ arg2);
return false;
}
});
return gestureDetector;
}


最后,我们要将事件发送到手势检测器

@Override
public boolean onGenericMotionEvent(MotionEvent event){
if(mGestureDetector != null){
return mGestureDetector.onMotionEvent(event);
}
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: