Rect包含(x,y)不会触发

时间:2018-01-06 12:27:05

标签: java android android-custom-view contains rect

我正在尝试模拟自定义android视图中的按钮单击。我需要使用Rect.contains()方法,但无论我在哪里点击它,它都不会被触发,也不会返回true。

 rect = new Rect(0, 0, 720, 205);

点击坐标的一个例子是(401,103),这将返回false。

if(rect.contains((int)event.getX(),(int)event.getY())){
                    Log.w("CLICKED","");
                }

从未记录“点击”。我已经阅读了文档,它说  'left< = x<右和上< = y<底部'返回真实

在该示例中0 <= 401&lt; 720且0 <= 103&lt; 205这是真的但似乎不起作用。

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

getX()和getY()返回相对于调度事件的视图的坐标。如果该视图的原点不在0,0那么它可能不满足rect.contains((int)event.getX(),(int)event.getY())条件。

但是,你可以使用getRawX()和getRawY()来返回相对于屏幕的绝对坐标。

可能是这种情况 -

pic1.png