要获得与整个屏幕对应的屏幕坐标,而不是触摸的视图,可以使用以下方法:
View.getLocationOnScreen()
方法获取视图在屏幕上的位置,然后将触摸事件的坐标与视图的位置相加即可得到与整个屏幕对应的坐标。UITapGestureRecognizer
或 UIPanGestureRecognizer
等手势识别器,获取触摸事件的位置,然后将触摸事件的坐标与视图的位置相加即可得到与整个屏幕对应的坐标。event.clientX
和 event.clientY
获取触摸事件的坐标,然后将其与视图的位置相加即可得到与整个屏幕对应的坐标。以下是一个简单的示例代码:
// Android 示例代码
@Override
public boolean onTouchEvent(MotionEvent event) {
int[] location = new int[2];
getLocationOnScreen(location);
int x = (int) event.getX() + location[0];
int y = (int) event.getY() + location[1];
// 处理触摸事件
return true;
}
// iOS 示例代码
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first!
let location = touch.location(in: self.view)
let screenLocation = touch.location(in: nil)
// 处理触摸事件
}
// Web 开发示例代码
document.addEventListener('click', function(event) {
var x = event.clientX + document.documentElement.scrollLeft;
var y = event.clientY + document.documentElement.scrollTop;
// 处理点击事件
});
请注意,以上示例代码仅供参考,实际应用中可能需要根据具体情况进行调整。
领取专属 10元无门槛券
手把手带您无忧上云