1

だから私は自分のページのイメージビューコンポーネントをスワイプで変更しようとしています。スワイプジェスチャを取得してジェスチャ検出器に転送することさえできません。

OnFling メソッドでは、これらのログ ステートメントにアクセスできません。私が見逃しているものはありますか?

public class Detail extends Activity implements OnClickListener{

private GestureDetector gestureDetector;
private ImageView wallpaper;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
            gestureDetector = new GestureDetector(new MyGestureDetector());
            wallpaper = (ImageView)findViewById(R.id.wallpaper);
    wallpaper.setAdjustViewBounds(true);

            wallpaper.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            Log.d("getting", "here");
                            //return gestureDetector.onTouchEvent(event);
            return true;
                    }
            });
}

class MyGestureDetector extends SimpleOnGestureListener {
    private static final int SWIPE_MIN_DISTANCE = 50;
    private static final int SWIPE_MAX_OFF_PATH = 250;
    private static final int SWIPE_THRESHOLD_VELOCITY = 200;

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        try {
            Log.d("MOTION", "STARTED");
            if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {

                Log.d("Moving", "Right");
                return true;

            }  
            else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                Log.d("Moving", "Left");
                return true;

            }
        } catch (Exception e) {

        }
        return false;
    }
}
4

3 に答える 3

1

ここに良い例があり ます http://www.androidsnippets.com/gesturedetector-and-gesturedetectorongesturelistener

于 2012-03-28T10:57:09.387 に答える
0

設定する必要があります

mDetector.setIsLongpressEnabled(false);

長押しはデフォルトで有効 (true) であり、長押しイベントのみをリッスンし、スクロール、フリング、およびその他の複雑なイベントを破棄します。

ジェスチャー検出オブジェクトをセットアップした後、そのコードを挿入するだけです。

mDetector = new GestureDetectorCompat(context, this);
mDetector.setOnDoubleTapListener(this);
mDetector.setIsLongpressEnabled(false);

平和

于 2016-03-26T15:23:45.113 に答える