我试图检查特定区域是否包含Android中onTouchEvent
上的触摸点。最初,我将所有区域数据放入数组中,如下所示。
ArrayList<Region> regionlist = new ArrayList<>();
RectF rectF = new RectF();
path.computeBounds(rectF, true);
r = new Region();
r.setPath(path, new Region((int) rectF.left, (int) rectF.top, (int) rectF.right, (int) rectF.bottom));
regionlist.add(r);
这是我的onTouchEvent
。
public boolean onTouchEvent(MotionEvent event) {
Point point = new Point();
point.x = (int) event.getX();
point.y = (int) event.getY();
invalidate();
Log.d(TAG, "point: " + point);
for( Object result : regionlist ) {
Log.d("isuru", "Bucha " + result);
if(result.contains(point.x, point.y)) { //Error Line
Log.d(TAG, "Touch IN");
}else {
Log.d(TAG, "Touch OUT");
}
}
return true;
}
正如我在代码contains
中提到的那样,错误显示为Cannot resolve method contains(int, int)
?为什么会这样?
答案 0 :(得分:2)
请更改以下代码
for( Object result : regionlist ) {
//code
}
到
for( Region result : regionlist ) {
//code
}