首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android上隐藏鼠标指针

在Android上隐藏鼠标指针
EN

Stack Overflow用户
提问于 2013-01-14 07:22:22
回答 3查看 7.7K关注 0票数 11

我正在为OUYA和Android编写一个游戏,我正在使用OUYA控制器上的触摸板。每当你触摸它的时候,鼠标指针就会出现,我找不到隐藏它的方法。我想这对Android上网本上的游戏来说也是个问题。有没有人找到了一种与光标交互的方法,而不仅仅是监听事件?

EN

回答 3

Stack Overflow用户

发布于 2013-02-05 00:11:26

这不会隐藏鼠标,但它至少有助于防止触摸事件干扰您的操纵杆处理代码--我知道这不是一个合适的解决方案,但仍然可以帮助登录此页面的人:

代码语言:javascript
复制
public boolean onGenericMotionEvent(MotionEvent event) {
    if ( (event.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) {
        //handle the event
        return true;
    }
    else {
        return false;
    }
}
票数 7
EN

Stack Overflow用户

发布于 2013-03-21 13:31:05

Android目前没有公开任何隐藏鼠标光标的功能。只要您有外部指点设备(即usb/蓝牙鼠标、触控板等),当您与设备交互时,屏幕上将显示鼠标指针。

不幸的是(从JB 4.2.2开始),这意味着没有修改过的ROM是不可能的。

票数 3
EN

Stack Overflow用户

发布于 2021-10-06 17:46:02

现在可以request pointer capture了。您需要显式请求捕获:

代码语言:javascript
复制
fun onClick(view: View) {
    view.requestPointerCapture()
}

如文档所示:

安卓通常会从鼠标以外的其他来源传递指针事件,但鼠标指针不再可见。

您可以通过重写onCapturedPointerEvent来处理指针事件

代码语言:javascript
复制
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注册事件处理程序

代码语言:javascript
复制
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
}

完成后由您决定是否释放指针:

代码语言:javascript
复制
override fun onClick(view: View) {
    view.releasePointerCapture()
}

我知道这个问题的整体上下文可能不适用(即: Ouya开发),但这是我自己研究如何做到这一点时的第一个搜索结果。所以我想我应该更新答案!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14309425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档