如何在Android上将视图坐标转换为画布坐标?

时间:2017-03-21 03:37:55

标签: android canvas

我将应用程序从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函数或者这样做的方法?

0 个答案:

没有答案
相关问题