如何以编程方式将Android手势视图添加到自定义视图?

时间:2010-05-26 17:29:58

标签: android gestures

我有一个自定义视图,工作正常,我正在尝试手势。我看到的最常见的技术是添加XML,例如(来自Android文档:

<android.gesture.GestureOverlayView
  android:id="@+id/myGestures"
  android:layout_width="fill_parent"
  android:layout_height="0dip"
  android:layout_weight="1.0"
  />

我的视图位于RelativeView中,当我尝试引用此GetureOverlayView时,我得到一个例外。

我还尝试在现有的自定义视图类中进行连接,如下所示:

mGestures = new GestureOverlayView(context, attrs);
mGestures.addOnGesturePerformedListener(this);

但是从不调用回调。

有人可以指出我的错误,建议一种更好的方法,让我可以获得手势回调和/或建议诊断方法吗?

1 个答案:

答案 0 :(得分:3)

问候, 当我努力寻找同一问题的解决方案时,我遇到了你的问题:我有一个自定义视图,一个衡量标准,我无法得到手势(直到我找到你的问题)。

我能够解决问题,因此这个回应。

我发现我的视图是返回点击事件,但操作总是0,对于ACTION_DOWN ...而在我的其他布局上,手势在哪里工作,我会为任何单个手势获得各种动作。

我继续使用失败的linearlayout,并使用上面的代码将其封装在gestureOverlayView内。一个区别是我将整个线性布局放在gestureoverlay内。上面的示例显示gestureoverlay是一个独立的实体,其中没有任何内容,这可能是导致问题的原因。

要使用它,我只需在overlayview中注册我的手势监听器,如下所示:

((GestureOverlayView) findViewById(R.id.myGestures)).setOnTouchListener(gestureListener);

我对快速反应表示歉意,但我希望至少我可以对你的问题有所了解,或者帮助其他任何打击这个怪癖的人,因为他们正在使用手势。

BH