3

最近、アプリケーションにマルチストロークジェスチャを導入しました。これは設定なので、Activity.OnCreateでStrokeTypeを動的に設定します。私が発見したのは、StrokeTypeを動的に設定すると、GestureOverlayViewの動作が次のように変化することです。

通常の動作では、ジェスチャを描画すると、描画された後も画面に表示されたままになります。ただし、ストロークタイプを動的に変更すると、OnGestureEndedイベントが発生した直後に、画面に描画されたジェスチャが消えます。サンプルのGesturesBuilderアプリケーションをリロードし、ここに示す2行目を追加しても同じ問題があることを確認しました。

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

これはAndroidジェスチャーライブラリのバグですか?回避策を知っている人はいますか?

これはHTCMagicにあるため、受話器の問題である可能性もあることに注意してください。

4

1 に答える 1

1

ジェスチャオーバーレイの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 に答える