gpt4 book ai didi

android - TWO_SWIPE_DOWN TAP 无法捕捉 Google Glass GDK (XE16)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:44:07 26 4
gpt4 key购买 nike

在 Google Glass XE16 GestureDetector 中可以检测多种手势,如 LONG_PRESS、SWIPE_DOWN、THREE_LONG_PRESS、TWO_SWIPE_DOWN、TWO_TAP 和 SOME OTHER GESTURES .

在玻璃中,TWO_SWIPE_DOWN 类似于取消所有内容并进入黑屏的快捷方式选项。黑屏之后是“ok glass”

但是我需要覆盖 TWO_SWIPE_DOWN TAP,这样用户就不能以这种方式离开应用程序。我想在点击 TWO_SWIPE_DOWN 时显示用户特定的消息。

我在 GDK Touch Gestures 后面有代码如下:

    gestureDetector.setBaseListener(new GestureDetector.BaseListener() {
@Override
public boolean onGesture(Gesture gesture) {
if (gesture == Gesture.TAP) {
return true;
} else if (gesture == Gesture.TWO_TAP) {
return true;
} else if (gesture == Gesture.SWIPE_RIGHT) {
return true;
} else if (gesture == Gesture.SWIPE_LEFT) {
return true;
} else if (gesture == Gesture.TWO_SWIPE_DOWN) {
Log.i("Checking the TAPPING of TWO_SWIPE_DOWN", "Its working fine.");
return true;
}
return true;
}
});

上面的代码能够在没有 TWO_SWIPE_DOWN TAP 的情况下捕获所有其他的点击!

那么我如何才能捕获 TWO_SWIPE_DOWN TAP?

最佳答案

如果您的代码在 View/SurfaceView 中,这是 Google 提供的实现

    /**
* TextView that handles touchpad input (currently only TAP).
*/
public class TouchpadHandlingTextView extends TextView
implements OnAttachStateChangeListener{

private final GestureDetector mTouchDetector;

public TouchpadHandlingTextView(Context context, AttributeSet attrs) {
super(context, attrs);
mTouchDetector = createGestureDetector(context);
// must set the view to be focusable
setFocusable(true);
setFocusableInTouchMode(true);
}

public TouchpadHandlingTextView(Context context) {
this(context, null);
}

@Override
public void onViewAttachedToWindow(View v) {
requestFocus();
}

@Override
public void onViewDetachedFromWindow(View v) {
}

/**
* Pass a MotionEvent into the gesture detector
*/
@Override
public boolean dispatchGenericFocusedEvent(MotionEvent event) {
if (isFocused()) {
return mTouchDetector.onMotionEvent(event);
}
return super.dispatchGenericFocusedEvent(event);
}

/**
* Create gesture detector that triggers onClickListener. Implement
* onClickListener in your Activity and override
* onClick() to handle the "tap" gesture.
*/
private GestureDetector createGestureDetector(Context context) {
GestureDetector gd = new GestureDetector(context);
gd.setBaseListener(new GestureDetector.BaseListener() {

@Override
public boolean onGesture(Gesture gesture) {
if (gesture == Gesture.TAP) {
return performClick();
}
if(gesture == Gesture.SWIPE_DOWN){
//Do something instead of close app
return true;
}
}
});
return gd;
}
}

这将使您可以完全控制您的 Views 事件。

这是我从谷歌得到的引用。

https://developers.google.com/glass/develop/gdk/touch

关于android - TWO_SWIPE_DOWN TAP 无法捕捉 Google Glass GDK (XE16),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23218457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com