2012-03-29 83 views
0

我有一個活動,我有兩個imageViews。OnClick和onTouch

這對imagesViews有onClickListener,因爲我需要知道哪個imageView被點擊。當我點擊選擇圖片後我得到了點擊圖片的結果。

我知道需要相同的結果,但我需要知道在哪裏exacly我點擊這張圖片。我需要這個imageView被點擊的精確座標。我知道在onTouch方法中,我有我需要的功能。

我可以在onTouch上更改onClick方法嗎?或者在onClick上可以獲得精確的座標嗎?

+0

您可以使用onTouch事件......是指該鏈接 [1]:http://stackoverflow.com/questions/9122679/difference-between-ontouch-and-onclick-android – 2012-03-29 10:02:59

回答

4

沒有必要爲你使用onClick事件,因爲你可以輕鬆地捕獲使用onTouch回調的點擊。點擊是一個一個ACTION_DOWN動作,幾個ACTION_MOVE動作和一個ACTION_UP動作的序列。這些可以使用event.getAction()方法獲取。如果您收到ACTION_DOWN事件,然後收到ACTION_UP事件 - 這意味着用戶剛剛點擊了您的View。您還可以測量這些事件之間花費的時間,以確保它是一個簡單的點擊,而不是一個很長的點擊。當然,您可以使用event.getX()event.getY()方法來獲得確切的接觸點。希望這可以幫助。

3

你可以使用onTouch()用於獲取觸摸座標的方法

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; 
    } 
});