看板 AndroidDev 關於我們 聯絡資訊
※ 引述《loser0120 (失敗者)》之銘言: : 我自創RelativeLayout的子類別,內有多個ImageView是各種不規則圖片 : public class Myrlyt extends RelativeLayout { : public ImageView iv1, iv2; : ..... : } : 在Activity中實體化了多個Myrlyt類別,裡面的ImageView都設了監聽 : public class Main extends Activity { : private RelativeLayout rlyt_main; : private Myrlyt rlyt1, rlyt2; : : protected void setupViewComponent() { : rlyt1.iv1.setOnTouchListener(touchListener); : rlyt1.iv2.setOnTouchListener(touchListener); : rlyt_main.addView(rlyt1); : rlyt2.iv1.setOnTouchListener(touchListener); : rlyt2.iv2.setOnTouchListener(touchListener); : rlyt_main.addView(rlyt2); : } : .... : } : 想請教的是如何在rlyt1和rlyt2重疊時正確判定使用者點擊了哪張圖片 : 如下圖,rlyt2藍色,rlyt1紅色,當點擊重疊處就無法正確判定是rlyt1的ImageView : ▁▁▁ : ▕ ●▕ : ▕ ▂▁▁▁ : ▕▅▕ ▲▏ : ▕▄▂█▏ : ▕ ∩█▏ : 目前嘗試先判斷是不是點擊到rlyt2的ImageView圖片透明處, : 我希望可以繼續判斷此點擊在rlyt1是不是透明,這裡實在不知道怎麼寫 : 無論如何謝謝你看到最後 可以參考看看 http://stackoverflow.com/questions/7778279/android-creating-shaped-button 如果是我做的話,跟上面連結會滿類似的 我會做成每個圖片按鈕是一個 View 1.在 onTouch ACTION_DOWN 的地方判斷這個點的 pixel 的 alpha channel 是否為透明。 如果不是透明 return true,不繼續往下個 View 判斷。 2.偵測是否有移動的距離,有移動超過某個距離視為拖移,而非 Click。 3.接著在 onTouch ACTION_UP 的地方,看起來的點和時間,是否為限制的位置和時間內 若不是也不當做是 Click。 4.如果通過以上判斷是 Click 則觸發 performClick(); 至於外面的 layout 一點也不重要,你必須要讓你的按鈕可以獨立運作才對。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.99.182.229 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1447741402.A.332.html