我将应用程序从ios移植到android,涉及将列表视图中的项目拖放到具有矩形区域的视图中。
在Swift上我使用此代码验证该项目是否在主区域内:
func isInsideMainArea(point: CGPoint) -> Bool {
let nodePoint = convertPoint(fromView: point);
return mainArea?.contains(nodePoint);
}
但是在android上我无法找到将View坐标转换为画布坐标的正确方法,因此我可以评估放置的项目是否在主区域内。
到目前为止,这是我的验证码,但没有按预期工作,因为如果我缩放或翻译画布,坐标会改变:
public Boolean isInsideMainArea(Room testRoom, Float textX, Float testY) {
RectF rectangle = new RectF(
x,
y,
room.getWidth() * CONSTANTS.PIX_PER_METER * metrics.density,
room.getHeight() * CONSTANTS.PIX_PER_METER * metrics.density
);
if(mainArea.contains(rectangle)){
return true;
}
return false;
}
是否有类似于android上的convertPoint函数或者这样做的方法?