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

作者: loser0120 (失敗者)   2015-11-16 18:07:27
我自創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是不是透明,這裡實在不知道怎麼寫
無論如何謝謝你看到最後
作者: jknm0510a (Kang)   2015-11-16 23:46:00
塞tag進每個item判別tag或是給4個itme ID,getView的id
作者: noartsarc (諾亞方舟)   2015-11-17 09:13:00
監聽onclick不行嗎? 我記得預設點擊不會穿透
作者: LZN (秋)   2015-11-17 10:49:00
藍色在蓋紅色上方,所以onclick會先到藍色imageview但是因為藍色左上腳是透明,使用者是想點紅色確實際藍色先點到我的初步想法是在listener先檢查點擊點是否為透明像素,若是透明的像素,則skip掉此onclick,touch event自然會被後面的imageview給收到?
作者: ie875141   2015-11-17 16:20:00
藍色ImageView收到touchdown,先getpixel判斷是否為透明層如果是藍色View的ontouch return false這樣event會往下

Links booklink

Contact Us: admin [ a t ] ucptt.com