2012-03-29 12 views
0

私は2つの画像を持っています。OnClickとonTouch

これはimagesViewにはどのclickがクリックされたかを知る必要があるため、onClickListenerがあります。選択した画像をクリックすると、画像がクリックされた結果が表示されます。

私は同じ結果が必要であることを知っていますが、私はこの画像をどこかに正確にクリックする必要があります。このimageViewがクリックされた場所の正確な座標が必要です。私はonTouchメソッドで私は必要な機能があることを知っています。

onTouchでonClickメソッドを変更することはできますか?またはonClickで正確な座標を取得できますか?

+0

あなたはonTouchイベントを使用することができます...このリンク を参照してください[1]:http://stackoverflow.com/questions/9122679/difference-between-ontouch-and-onclick-android –

答えて

4

あなたは簡単にonTouchコールバックを使用してクリックをキャプチャすることができますので、あなたは、onClickイベントを使用する必要はありません。クリックは、1つのACTION_DOWNアクション、複数のACTION_MOVEアクション、および1つのACTION_UPアクションのシーケンスです。これらはevent.getAction()メソッドを使用して取得できます。 ACTION_DOWNイベントとその後ACTION_UPイベントが発生した場合、ユーザーがViewをちょうどクリックしたことを意味します。また、これらのイベントの間に費やされた時間を測定して、長いクリックではなく、単純なクリックであることを確認することもできます。もちろん、event.getX()event.getY()メソッドを使用して、正確なタッチポイントを取得することもできます。お役に立てれば。

3

あなたがonTouchを使用することができます()のタッチを取得するための方法は、これを行うことができないのonclick

touchView.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     System.out.println("Touch coordinates : " + 
      String.valueOf(event.getX()) + "x" + String.valueOf(event.getY())); 
      return true; 
    } 
});