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

楼主: loser0120 (失败者)   2015-11-18 07:03:13
※ 引述《lovelycateye (我还想要更多力量)》之铭言:
: 可以参考看看
: http://stackoverflow.com/questions/7778279/android-creating-shaped-button
: 如果是我做的话,跟上面连结会满类似的
: 我会做成每个图片按钮是一个 View
: 1.在 onTouch ACTION_DOWN 的地方判断这个点的 pixel 的 alpha channel 是否为透明。
: 如果不是透明 return true,不继续往下个 View 判断。
^^^^^^^^^^^能否请教这里的关键字,因为监听return false后
似乎只有往上一层的layout传递,不知如何传递给同层的View
: 2.侦测是否有移动的距离,有移动超过某个距离视为拖移,而非 Click。
: 3.接着在 onTouch ACTION_UP 的地方,看起来的点和时间,是否为限制的位置和时间内
: 若不是也不当做是 Click。
: 4.如果通过以上判断是 Click 则触发 performClick();
: 至于外面的 layout 一点也不重要,你必须要让你的按钮可以独立运作才对。
我照着把那层layout拿掉算是做出来了,没被View覆蓋的View也判断orz
而且其他地方变得蛮不好写的,方法如下:
public boolean onTouch(View v, MotionEvent event) {
boolean isTransparent, isOutOfRange;
...... //我取event.getRawX()和getRawY()来判断
if (isTransparent || isOutOfRange) {
ViewGroup vg = (ViewGroup)v.getParent();
int index = vg.indexOfChild(v);
if (index > 0)
this.onTouch(vg.getChildAt(index-1), event);
}
return true;
}
终于解决了很开心,谢谢大家!

Links booklink

Contact Us: admin [ a t ] ucptt.com