ViewGroup中的视图

时间:2011-02-01 14:13:49

标签: android view viewgroup

我有以下情况。我有一个视图组和两个视图(一个绘制一个rectshape,一个ovalshape另一个)。视图组和两个视图实现OnTouchListener接口。但是当触摸视图时,会调用Viewgroup.onTouch(..)和RectView.onTouch()以及OvalView.onTouch()。我的问题是..如果我想知道哪些观点已被触及我需要做什么?请给我一些信息或示例?

提前致谢,

2 个答案:

答案 0 :(得分:0)

好吧,我们来看看OnTouchListener

你看到onTouch(View,MotionEvent)如果已经消耗了该事件,则返回一个布尔值。所以考虑到这一点,你可能想要做一些数学运算,看看你的RectView或OvalView是否包含触摸事件(使用MotionEvent获取X,Y坐标)。如果确实包含它,则返回true表示该视图已经消耗了触摸事件。

现在我不清楚每个onTouch()的调用顺序,但我认为它首先调用子视图,如果该子视图返回false,它将继续调用onTouch的其余部分()方法

如果区分是否触摸了RectView或OvalView(例如理论上可以同时触摸它们),那么你必须做一些额外的工作来看看你喜欢哪一个(可能有一个是另一方面。

答案 1 :(得分:0)

您只需获取接收触摸事件的视图的ID即可。

public boolean onTouch(View v, MotionEvent event) {
        v.getId();
}

您可以在xml中设置视图的ID,也可以使用setId()方法。