0
想要從同伴那裏獲得一些幫助。我正在創建一個由時鐘撥號,時針,分針,秒針和鬧鐘組成的自定義模擬時鐘。用戶可以旋轉警報手來設置警報。我想讓用戶只觸摸報警手,而不是其他地方設置報警。但是,我正在使用的觸摸偵聽器方法目前正在檢測整個畫布上的觸摸,包括時鐘撥號,時針等。如何檢測用戶在報警手上的觸摸並完成工作?在特定畫布上的Android touchlistener
想要從同伴那裏獲得一些幫助。我正在創建一個由時鐘撥號,時針,分針,秒針和鬧鐘組成的自定義模擬時鐘。用戶可以旋轉警報手來設置警報。我想讓用戶只觸摸報警手,而不是其他地方設置報警。但是,我正在使用的觸摸偵聽器方法目前正在檢測整個畫布上的觸摸,包括時鐘撥號,時針等。如何檢測用戶在報警手上的觸摸並完成工作?在特定畫布上的Android touchlistener
畫布不是佈局,因此您在畫布上繪製的視圖不再是普通視圖。 只能在報警部件上聆聽觸摸事件是不可能的。所有你可以做的就是計算你接觸(或向上)的指針是否在警報手上。
好的,注意到這一點。想問我怎麼知道鬧鐘的指針?謝謝。 – Ricky
Drawable有一個getBounds方法返回它的邊界(一個矩形對象),你可以用這個矩形來計算。 – tianwei
你的意思是這樣的Rect outRect = new Rect(); int [] location = new int [2]; private boolean inViewBounds(View view,int x,int y){ view.getDrawingRect(outRect); view.getLocationOnScreen(location); outRect.offset(location [0],location [1]); return outRect.contains(x,y); } – Ricky