我有一個活動,我有兩個imageViews。OnClick和onTouch
這對imagesViews有onClickListener,因爲我需要知道哪個imageView被點擊。當我點擊選擇圖片後我得到了點擊圖片的結果。
我知道需要相同的結果,但我需要知道在哪裏exacly我點擊這張圖片。我需要這個imageView被點擊的精確座標。我知道在onTouch方法中,我有我需要的功能。
我可以在onTouch上更改onClick方法嗎?或者在onClick上可以獲得精確的座標嗎?
我有一個活動,我有兩個imageViews。OnClick和onTouch
這對imagesViews有onClickListener,因爲我需要知道哪個imageView被點擊。當我點擊選擇圖片後我得到了點擊圖片的結果。
我知道需要相同的結果,但我需要知道在哪裏exacly我點擊這張圖片。我需要這個imageView被點擊的精確座標。我知道在onTouch方法中,我有我需要的功能。
我可以在onTouch上更改onClick方法嗎?或者在onClick上可以獲得精確的座標嗎?
沒有必要爲你使用onClick
事件,因爲你可以輕鬆地捕獲使用onTouch
回調的點擊。點擊是一個一個ACTION_DOWN
動作,幾個ACTION_MOVE
動作和一個ACTION_UP
動作的序列。這些可以使用event.getAction()
方法獲取。如果您收到ACTION_DOWN
事件,然後收到ACTION_UP
事件 - 這意味着用戶剛剛點擊了您的View
。您還可以測量這些事件之間花費的時間,以確保它是一個簡單的點擊,而不是一個很長的點擊。當然,您可以使用event.getX()
和event.getY()
方法來獲得確切的接觸點。希望這可以幫助。
你可以使用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;
}
});
的onclick不能做到這一點。您只能從onTouchListener獲取它們。
您可以使用onTouch事件......是指該鏈接 [1]:http://stackoverflow.com/questions/9122679/difference-between-ontouch-and-onclick-android – 2012-03-29 10:02:59