如何在Google Glass中的片段之间滑动

时间:2015-01-03 09:47:36

标签: android android-fragments google-glass google-gdk

我搜索了这个问题,但我没有得到一个确切的解决方案。我想知道如何在Google Glass中使用滑动选项。在Android手机中,片段工作没有做任何其他事情,但在谷歌眼镜我应该写一些代码。从this site开始,我得到一个简单的片段活动。我想通过滑动为Google Glass做这件事。 (手势探测器可能是一个解决方案,但我没有正确应用) 请给我一个线索。

1 个答案:

答案 0 :(得分:1)

我不太确定你在片段之间滑动是什么意思。但是,当然,无论是在普通的Android手机上使用什么样的滑动手势都无法在Glass-Glass上工作,但它没有触摸屏。它是一个触摸SENSOR,因此它不会检测您点击的位置(出于我们的目的),而是检测您滑动或点击的距离,速度和方向。

我在这个问题中唯一能回答的是如何创建GestureDetector。这就是我在项目中的表现:

public class EXAMPLE {
    private GestureDetector gestureDetector;
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        gestureDetector = createGestureDetector(this);

    }
    private GestureDetector createGestureDetector(Context context) {
        GestureDetector gestureDetectorTemp = new GestureDetector(context, new GestureDetector.OnGestureListener() {
            @Override
            public boolean onDown(MotionEvent motionEvent) {
                return false;
            }

            @Override
            public void onShowPress(MotionEvent motionEvent) {
               return false;
            }

            @Override
            public boolean onSingleTapUp(MotionEvent motionEvent) {
               return false;
            }
            @Override
            public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent2, float distanceX, float distanceY) {
                return false;
            }
            @Override
            public void onLongPress(MotionEvent motionEvent) {
            }
            @Override
            public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) { 
             return false;
            }
        });
        return gestureDetectorTemp;
    }

    @Override
    public boolean onGenericMotionEvent(MotionEvent event) {
        if (gestureDetector != null) {
            return gestureDetector.onTouchEvent(event);
        }
        return false;
    }
}

最后一部分非常重要。在任何通用运动事件中,如果gestureDetector不为null,则您将通过gestureDetector发送事件以进行处理。

请记住return语句的含义。如果您想成为唯一一个处理特定事件的人,您应该return true;。这意味着您处理了该事件,并且不会通知其他默认方法。否则,return false;表示可以通知其他方法。