You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

点击按钮时隐藏Android应用中的鼠标光标是否可行?

当然能解决这个问题!我给你几个靠谱的方案,帮你在Android应用里把那个烦人的鼠标光标藏起来:

方案1:给单个View隐藏光标

如果只是想在视频播放界面或者特定控件上隐藏光标,直接调用对应View的setCursor()方法就行,两种方式可选:

  • 传入null让光标直接消失:
// 比如你的视频播放容器或者根布局
videoContainer.setCursor(null);
  • 用全透明的Drawable作为光标(需要你提前准备一张全透明的png放到drawable目录):
videoContainer.setCursor(getResources().getDrawable(R.drawable.transparent_cursor));
方案2:全局隐藏整个应用的光标

要是希望整个应用里都看不到鼠标光标,就在Activity的onCreate或者onResume方法里给窗口设置:

// 获取窗口的根布局,设置光标为null
getWindow().getDecorView().setCursor(null);

或者通过WindowManager的属性配置:

Window window = getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.cursor = null;
window.setAttributes(params);
方案3:结合外接鼠标事件拦截处理

因为你是改装了鼠标按钮来触发视频,还可以通过监听鼠标输入事件,在按钮按下的同时隐藏光标,顺便处理你的视频启动逻辑:

@Override
public boolean onGenericMotionEvent(MotionEvent event) {
    // 判断是否是鼠标输入事件
    if (event.getSource() == InputDevice.SOURCE_MOUSE) {
        // 立刻隐藏光标
        getWindow().getDecorView().setCursor(null);
        
        // 处理鼠标左键按下的逻辑
        if (event.getAction() == MotionEvent.ACTION_BUTTON_PRESS) {
            // 启动你的视频播放
            startYourVideo();
        }
        return true; // 消费这个事件,不让系统继续处理
    }
    return super.onGenericMotionEvent(event);
}

小提醒

  • 测试时注意Android版本,一般4.0以上的系统都支持这些方法;
  • 如果之后需要恢复光标,调用setCursor(Cursor.getDefaultCursor())就能还原系统默认光标;
  • 用透明光标资源的话,记得适配不同分辨率的设备,避免出现异常。

内容的提问来源于stack exchange,提问作者Twing90

火山引擎 最新活动