作者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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1447668450.A.2AF.html
1F:推 jknm0510a: 塞tag进每个item判别tag或是给4个itme ID,getView的id 11/16 23:46
有设ID,抱歉没说明清楚
2F:推 noartsarc: 监听onclick不行吗? 我记得预设点击不会穿透 11/17 09:13
3F:→ LZN: 蓝色在盖红色上方,所以onclick会先到蓝色imageview 11/17 10:49
4F:→ LZN: 但是因为蓝色左上脚是透明,使用者是想点红色确实际蓝色先点到 11/17 10:50
5F:→ LZN: 我的初步想法是在listener先检查点击点是否为透明像素, 11/17 10:51
6F:→ LZN: 若是透明的像素,则skip掉此onclick,touch event自然会被 11/17 10:52
7F:→ LZN: 後面的imageview给收到? 11/17 10:53
8F:→ ie875141: 蓝色ImageView收到touchdown,先getpixel判断是否为透明 11/17 16:20
9F:→ ie875141: 层 11/17 16:21
10F:→ ie875141: 如果是蓝色View的ontouch return false这样event会往下 11/17 16:23
return false我还是不知道怎麽接收,谢谢大家的帮忙
※ 编辑: loser0120 (175.182.2.79), 11/18/2015 07:27:01