HarmonyOS鸿蒙Next中安卓的MotionEvent拿到具体事件横纵坐标值如何实现
HarmonyOS鸿蒙Next中安卓的MotionEvent拿到具体事件横纵坐标值如何实现
例如:
int x = (int) event.getX()
在鸿蒙中的TouchEvent要通过什么方式拿到坐标值
6 回复
直接通过组件绑定 onTouch 事件回调获取坐标:
Text("触摸区域")
.onTouch((event: TouchEvent) => {
// 获取触摸点坐标
let point = event.getPointerPosition(0);
let x = point.getX();
let y = point.getY();
// 更新UI或处理逻辑
})
更多关于HarmonyOS鸿蒙Next中安卓的MotionEvent拿到具体事件横纵坐标值如何实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
可以通过触摸事件 onTouch 拿到坐标
.onTouch((event?: TouchEvent) => {
if (event && event.sourceTool === SourceTool.Finger) {
if (event.touches) {
console.log( 'TouchType:' + this.eventType + '\nDistance between touch point and touch element:\nx:'
+ event.touches[0].x + '\n' + 'y: ' + event.touches[0].y + '\nComponent globalPos:('
+ event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')\nwidth:'
+ event.target.area.width + '\nheight:' + event.target.area.height + '\ntargetDisplayId:' +
event.targetDisplayId + '\npressedTime:' + event.touches[0].pressedTime + '\npressure:' +
event.touches[0].pressure +
'\nwidth:' + event.touches[0].width + '\nheight:' + event.touches[0].height)
}
}
})
在HarmonyOS Next中,通过PointerEvent
类获取触摸事件的坐标值。使用getPointerPosition
方法可获取当前指针的屏幕坐标,返回值为Point
类型,包含x和y属性。示例代码:
onTouch(event) {
let point = event.getPointerPosition(0);
let x = point.x;
let y = point.y;
}
其中参数0表示第一个触点的索引。
在HarmonyOS Next中,可以通过TouchEvent对象提供的getPointerPosition
方法获取触摸事件的坐标值。具体实现如下:
// 假设event为TouchEvent对象
let point = event.getPointerPosition(0); // 获取第一个触摸点的坐标
let x = point.x; // 横坐标
let y = point.y; // 纵坐标
如果需要处理多指触控,可以通过遍历TouchEvent中的触摸点列表来获取每个点的坐标:
let pointers = event.getTouches(); // 获取所有触摸点
for (let i = 0; i < pointers.length; i++) {
let point = pointers[i].position;
console.log(`Point ${i}: x=${point.x}, y=${point.y}`);
}
注意:HarmonyOS Next使用ArkTS开发,其事件处理机制与安卓不同,需通过上述API获取坐标信息。