質問

私はジェスチャーリストナーを使用して、スワイプ画面ナビゲーションをacheiveしています。しかし、それほど快適ではないので、次または前の画面にナビゲートするために複数の時間をスワイプする必要があります。速度、オフパス、最小距離の適切な値は何ですか。

以下を見つけてください私のコード:

private static final int SWIPE_MIN_DISTANCE = 50;
private static final int SWIPE_MAX_OFF_PATH = 300;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;

class MyGestureDetector extends SimpleOnGestureListener {
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        try {
            if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
                return false;
            // right to left swipe
            if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                viewFlipper.setInAnimation(slideLeftIn);
                viewFlipper.setOutAnimation(slideLeftOut);
                viewFlipper.showNext();    
                configDisplay();
            }  else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                viewFlipper.setInAnimation(slideRightIn);
                viewFlipper.setOutAnimation(slideRightOut);
                viewFlipper.showPrevious();
                configDisplay();
            }
        } catch (Exception e) {
            // nothing
        }
        return false;
    }
}
役に立ちましたか?

解決 2

これらのリンクは、私が解決策を実現するのに役立ちました:

GestureDetector.simpleongestureLelistener

Pinch-Zoom-Gesturの実装

Android-Pinch

他のヒント

私は最近、Flingingを使用して始めたアプリを実装しました SimpleOngestureLelistener あなたの例のように。各フリングの速度とオフセットを記録し、デバイスでテストして、適切な値だと思ったものを見つけました。

だが - 私はあなたがを見ることを強くお勧めします ViewPager で利用可能です コンパビリティパッケージ 代わりは。

例へのリンク付きのViewPagerについて。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top