我一直在試圖編寫一個識別Android自定義事件的小應用程序:您將手指放在TextView上一段時間,並且它會改變顏色。我使用MotionEvent座標並檢查它們是否位於表格內特定TextView的範圍內。Android中事件座標和視圖座標不匹配?
private boolean checkBounds(TextView v, MotionEvent event) {
int[] origin = new int[2];
v.getLocationOnScreen(origin);
if ((event.getX() > origin[0]) && (event.getX() < (origin[0] + v.getMeasuredWidth()))) {
if ((event.getY() > origin[1]) && (event.getY() < (origin[1] + v.getMeasuredHeight()))) {
return true;
}
}
return false;
}
我只是將onTouch監聽器附加到活動中的表上。但我得到奇怪的錯誤:座標似乎被一個視圖關閉(即如果我觸摸視圖下面的視圖反應);或者有時候會有反應,而另一個則不會。任何想法可能會發生什麼?
謝謝,這個作品非常漂亮!順便說一句,我正在使用我自己的事件框架,因爲點擊不是標準點擊(這是一秒鐘握住以滑動結束)。 謝謝, 尼克。 – 2010-06-30 19:34:02