我正在为OUYA和Android编写一个游戏,我正在使用OUYA控制器上的触摸板。每当你触摸它的时候,鼠标指针就会出现,我找不到隐藏它的方法。我想这对Android上网本上的游戏来说也是个问题。有没有人找到了一种与光标交互的方法,而不仅仅是监听事件?
发布于 2013-02-05 00:11:26
这不会隐藏鼠标,但它至少有助于防止触摸事件干扰您的操纵杆处理代码--我知道这不是一个合适的解决方案,但仍然可以帮助登录此页面的人:
public boolean onGenericMotionEvent(MotionEvent event) {
if ( (event.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) {
//handle the event
return true;
}
else {
return false;
}
}发布于 2013-03-21 13:31:05
Android目前没有公开任何隐藏鼠标光标的功能。只要您有外部指点设备(即usb/蓝牙鼠标、触控板等),当您与设备交互时,屏幕上将显示鼠标指针。
不幸的是(从JB 4.2.2开始),这意味着没有修改过的ROM是不可能的。
发布于 2021-10-06 17:46:02
现在可以request pointer capture了。您需要显式请求捕获:
fun onClick(view: View) {
view.requestPointerCapture()
}如文档所示:
安卓通常会从鼠标以外的其他来源传递指针事件,但鼠标指针不再可见。
您可以通过重写onCapturedPointerEvent来处理指针事件
override fun onCapturedPointerEvent(motionEvent: MotionEvent): Boolean {
// Get the coordinates required by your app
val verticalOffset: Float = motionEvent.y
// Use the coordinates to update your view and return true if the event was
// successfully processed
return true
}或为OnCapturedPointerListener注册事件处理程序
myView.setOnCapturedPointerListener { view, motionEvent ->
// Get the coordinates required by your app
val horizontalOffset: Float = motionEvent.x
// Use the coordinates to update your view and return true if the event was
// successfully processed
true
}完成后由您决定是否释放指针:
override fun onClick(view: View) {
view.releasePointerCapture()
}我知道这个问题的整体上下文可能不适用(即: Ouya开发),但这是我自己研究如何做到这一点时的第一个搜索结果。所以我想我应该更新答案!
https://stackoverflow.com/questions/14309425
复制相似问题