1

请帮忙,是否可以做下一件事 - 用手指在屏幕上而不抬起最后一个,程序读取我花费的视图对象。

尝试使用 onTouchListener,但总是将视图传递到 onTouch 方法中,该视图是感人的。

4

1 回答 1

0

这不是一件容易的事。在您的根视图或活动中,您应该监视所有触摸事件。您可以通过覆盖活动的 dispatchTouchEvent 方法来做到这一点,而无需制动超级 inmpementation。只是监视事件。

所以我们有活动。运行循环以递归方式查找事件坐标处的视图(您可以找到多个视图)。做这样的事情:

for (int i = 0; i < contentViewCount; i++) {
    final View child = contentViews[i];
    child.getHitRect(frame);
    if (frame.contains(eventX, eventY) && child.getVisibility() == View.Visible) {
        if (child instanceOf ViewGroup) {
            // we found a view group and should run same loop on it's childs
        } else {
            // we found a view
        }
    }
}
于 2015-01-16T09:46:34.327 回答