作者loser0120 (失敗者)
看板AndroidDev
標題[問題] 不規則元件的點擊
時間Mon Nov 16 18:07:27 2015
我自創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是不是透明,這裡實在不知道怎麼寫
無論如何謝謝你看到最後
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.2.79
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1447668450.A.2AF.html
推 jknm0510a: 塞tag進每個item判別tag或是給4個itme ID,getView的id 11/16 23:46
有設ID,抱歉沒說明清楚
推 noartsarc: 監聽onclick不行嗎? 我記得預設點擊不會穿透 11/17 09:13
→ LZN: 藍色在蓋紅色上方,所以onclick會先到藍色imageview 11/17 10:49
→ LZN: 但是因為藍色左上腳是透明,使用者是想點紅色確實際藍色先點到 11/17 10:50
→ LZN: 我的初步想法是在listener先檢查點擊點是否為透明像素, 11/17 10:51
→ LZN: 若是透明的像素,則skip掉此onclick,touch event自然會被 11/17 10:52
→ LZN: 後面的imageview給收到? 11/17 10:53
→ ie875141: 藍色ImageView收到touchdown,先getpixel判斷是否為透明 11/17 16:20
→ ie875141: 層 11/17 16:21
→ ie875141: 如果是藍色View的ontouch return false這樣event會往下 11/17 16:23
return false我還是不知道怎麼接收,謝謝大家的幫忙
※ 編輯: loser0120 (175.182.2.79), 11/18/2015 07:27:01