[问题] 不规则元件的点击

楼主: 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