3

onFlingの方法で2本指スワイプを実装してみSimpleOnGestureListenerました。SimpleOnGestureListenerただし、これは2本の指でのタッチをサポートしていないことがわかりました。

どうすれば解決できますか?

4

3 に答える 3

1

MotionEvent.ACTION_POINTER_DOWN次のように OnTouchListener を使用してみることができます。

 button.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View view, MotionEvent motionEvent) {
            int action = motionEvent.getAction();

            switch(action & MotionEvent.ACTION_MASK)
            {
                case MotionEvent.ACTION_POINTER_DOWN:
                    Toast.makeText(MyActivity.this, " Two Fingers Tapped Once. Yeeeyy :)", 0).show();

                    // set the mTwoFingersTapped flag to TRUE when we tap with 2 fingers at once
                    mTwoFingersTapped = true;
                    break;
            }
            return false;
        }
    });

これは、その方法を説明するチュートリアルです

于 2012-12-10T06:41:30.210 に答える
1

少し前に、1/マルチフィンガースワイプを非常に簡単に実装できるライブラリを作成しました。

API の詳細なドキュメントはこちらにあります 。サンプル実装はこちらにあります。

見てほしい部分は

ImageView mv = (ImageView) findViewById(R.id.myview);
final TextView grtv = (TextView) findViewById(R.id.gestureResultTextView);
SimpleFingerGestures.DEBUG = true;
SimpleFingerGestures.CONSUME_TOUCH_EVENTS = true;
SimpleFingerGestures sfg = new SimpleFingerGestures();
sfg.setOnFingerGestureListener(new SimpleFingerGestures.OnFingerGestureListener() {
@Override
public boolean onSwipeUp(int fingers, long gestureDuration) {
grtv.setText("swiped " + fingers + " up");
return false;
}
@Override
public boolean onSwipeDown(int fingers, long gestureDuration) {
grtv.setText("swiped " + fingers + " down");
return false;
}
@Override
public boolean onSwipeLeft(int fingers, long gestureDuration) {
grtv.setText("swiped " + fingers + " left");
return false;
}
@Override
public boolean onSwipeRight(int fingers, long gestureDuration) {
grtv.setText("swiped " + fingers + " right");
return false;
}
@Override
public boolean onPinch(int fingers, long gestureDuration) {
grtv.setText("pinch");
return false;
}
@Override
public boolean onUnpinch(int fingers, long gestureDuration) {
grtv.setText("unpinch");
return false;
}
});
mv.setOnTouchListener(sfg);
于 2014-10-28T23:05:22.483 に答える