2016-12-20 19 views
2

MXプレーヤーの場合と同様に、左手の垂直スワイプジェスチャーが明るさをコントロールし、右手の垂直ジェスチャーがボリュームをコントロールします。これはアプリでも同じです。だから私はどうすればいいのですか?モーションイベントジェスチャーが画面の左側または右側で実行されているかどうかを検出する方法はありますか?

+0

MotionEventsはx軸とy座標を持っています。単純な計算を使用して、MotionEventが起動されている場所を検出します。 – DroidBender

答えて

0

あなたはこのようonTouchEvent聞くことができます。

public class MainActivity extends Activity { 
     float x1 = 0; 
     float y1 = 0; 
     float x2 ; 
     float y2 ; 
    ... 

    @Override 
    public boolean onTouchEvent(MotionEvent event){ 
    int action = MotionEventCompat.getActionMasked(event); 

      switch(action) { 
       case (MotionEvent.ACTION_DOWN) : 
        x1 = event.getX(); 
        y1 = event.getY(); 
        return true; 
       case (MotionEvent.ACTION_UP) : 
        x2 = event.getX(); 
        y2 = event.getY(); 

        //if left to right sweep event on screen 
        if (x1 < x2) 
        { 
         Toast.makeText(this, "Left to Right Swap Performed", Toast.LENGTH_LONG).show(); 
        } 

        // if right to left sweep event on screen 
        if (x1 > x2) 
        { 
         Toast.makeText(this, "Right to Left Swap Performed", Toast.LENGTH_LONG).show(); 
        } 

        // if UP to Down sweep event on screen 
        if (y1 < y2) 
        { 
         Toast.makeText(this, "UP to Down Swap Performed", Toast.LENGTH_LONG).show(); 
        } 

        //if Down to UP sweep event on screen 
        if (y1 > y2) 
        { 
         Toast.makeText(this, "Down to UP Swap Performed", Toast.LENGTH_LONG).show(); 
        } 
        return true; 
関連する問題