Re: [問題] 不規則元件的點擊

看板AndroidDev作者 (失敗者)時間8年前 (2015/11/18 07:03), 8年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《lovelycateye (我還想要更多力量)》之銘言: : 可以參考看看 : http://stackoverflow.com/questions/7778279/android-creating-shaped-button : 如果是我做的話,跟上面連結會滿類似的 : 我會做成每個圖片按鈕是一個 View : 1.在 onTouch ACTION_DOWN 的地方判斷這個點的 pixel 的 alpha channel 是否為透明。 : 如果不是透明 return true,不繼續往下個 View 判斷。 ^^^^^^^^^^^能否請教這裡的關鍵字,因為監聽return false後 似乎只有往上一層的layout傳遞,不知如何傳遞給同層的View : 2.偵測是否有移動的距離,有移動超過某個距離視為拖移,而非 Click。 : 3.接著在 onTouch ACTION_UP 的地方,看起來的點和時間,是否為限制的位置和時間內 : 若不是也不當做是 Click。 : 4.如果通過以上判斷是 Click 則觸發 performClick(); : 至於外面的 layout 一點也不重要,你必須要讓你的按鈕可以獨立運作才對。 我照著把那層layout拿掉算是做出來了,沒被View覆蓋的View也判斷orz 而且其他地方變得蠻不好寫的,方法如下: public boolean onTouch(View v, MotionEvent event) { boolean isTransparent, isOutOfRange; ...... //我取event.getRawX()和getRawY()來判斷 if (isTransparent || isOutOfRange) { ViewGroup vg = (ViewGroup)v.getParent(); int index = vg.indexOfChild(v); if (index > 0) this.onTouch(vg.getChildAt(index-1), event); } return true; } 終於解決了很開心,謝謝大家! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.2.79 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1447801397.A.9C3.html ※ 編輯: loser0120 (175.182.2.79), 11/18/2015 09:34:00
文章代碼(AID): #1MIx8rd3 (AndroidDev)
文章代碼(AID): #1MIx8rd3 (AndroidDev)