Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android上将视图坐标转换为画布坐标?_Android_Canvas - Fatal编程技术网

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

如何在Android上将视图坐标转换为画布坐标?,android,canvas,Android,Canvas,我正在将一个应用程序从ios移植到android,其中包括将列表视图中的项目拖放到一个矩形区域的视图中 在Swift上,我使用此代码验证物品是否在主要区域内: func isInsideMainArea(point: CGPoint) -> Bool { let nodePoint = convertPoint(fromView: point); return mainArea?.contains(nodePoint); } 但是在android上,我找不到将视图坐标转换为画

我正在将一个应用程序从ios移植到android,其中包括将列表视图中的项目拖放到一个矩形区域的视图中

在Swift上,我使用此代码验证物品是否在主要区域内:

func isInsideMainArea(point: CGPoint) -> Bool {
   let nodePoint = convertPoint(fromView: point);
   return mainArea?.contains(nodePoint);
}
但是在android上,我找不到将视图坐标转换为画布坐标的正确方法,这样我就可以评估被删除的项目是否在主区域内

到目前为止,这是我的验证代码,但没有按预期工作,因为如果缩放或平移画布,坐标会发生变化:

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功能相当的功能或方法