3

我最近在我的应用程序中引入了多笔手势。这是一个首选项,因此我在 Activity.OnCreate 中动态设置了 StrokeType。我发现,如果您动态设置 StrokeType,它会以下列方式改变 GestureOverlayView 的行为。

正常的行为是您绘制一个手势并在绘制后停留在屏幕上。但是,当您动态更改笔触类型时,在屏幕上绘制的任何手势都会在 OnGestureEnded 事件触发后立即消失。我重新加载了示例 GesturesBuilder 应用程序,并确认如果添加此处显示的第二行,它也会出现同样的问题:

    GestureOverlayView overlay = (GestureOverlayView) findViewById(R.id.gestures_overlay);
    overlay.setGestureStrokeType(GestureOverlayView.GESTURE_STROKE_TYPE_SINGLE);
    overlay.addOnGestureListener(new GesturesProcessor());
}

这是 Android 手势库中的错误吗?有人知道解决方法吗?

请注意,这是在 HTC Magic 上,因此也可能是手机问题。

4

1 回答 1

1

您可以在 Gesture Overlay 的 XML 文件中静态设置笔触类型。

<android.gesture.GestureOverlayView
android:id="@+id/gestures_alpha"
android:layout_width="fill_parent" 
android:layout_height="0dip"
android:layout_weight="1.0" 
android:gestureStrokeType="multiple"
android:fadeOffset="1000"
/>

手势很快消失,因为 fadeOffset 设置为较低的数字。如果你自己设置它,就像上面一样,手势消失之前需要一段时间。在这段时间之后,根据您使用的是哪一个,将调用 OnGestureEvent 或 OnGesturePerformedListener。

于 2011-05-07T16:13:59.940 回答