2017-02-03 6 views
0

ユーザー入力のタッチ位置が特定のポイントから左、上、右または下にあるかどうかを決定するにはどうすればよいですか?私は接触の位置を得る方法を知っていますが、それがどのように "方法"であるかを決める方法を知らない。特定のポイントからタッチ位置が左上、上、右または下にあるかどうかを決定します。

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    if(event.getAction() == MotionEvent.ACTION_DOWN){ 
     //... 
    } 
    return false; 
} 

デモ画像:それらは、45度の角度でない場合

enter image description here

+2

数学を試しましたか? –

+0

いいえ、私はこれらの対角にどのように使用するのか分かりません。 – BlackJack

+1

@BlackJackこれらの正確な角度が必要ですか?そうでない場合は、「このタッチが右よりも下にある」のチェックで十分でしょうか? – Houseman

答えて

2

dy = pointY- currentY 
dx = pointX- currentX 
if(abs(dy) > abs (dx) && dy <0) return bottom 
else if(abs(dy) - abs (dx)) return top 
else if(dx < 0) return right 
else if (dx > 0) return left 
else return same point 

そして、それらは、45度の角度であると仮定すると、あなたがする必要があるとしています境界がどこにあるのか把握するためにtrigを使用します。

+0

はい、45度です(決定領域の境界を作るためには架空です)。あなたのソリューションをありがとう。 – BlackJack

+0

上下左右が反転していませんか? – BlackJack

+0

はいそうです。申し訳ありませんが、コードを更新しました –

関連する問題