在任何屏幕上接收触摸事件

时间:2014-09-10 18:25:13

标签: android

我正在尝试制作一个自定义导航按钮,并通过root设备禁用了android提供的默认导航按钮。我希望我的自定义导航按钮在一段时间(比如5秒)后消失。我设法做到了。我想制作一些东西,每当我触摸屏幕上的任何地方时,我都可以检测到触摸事件并显示我的导航栏。无论我是在主屏幕还是任何应用程序,我都可以接收触摸事件。有没有办法这样做或者我需要去android源代码吗?

谢谢

1 个答案:

答案 0 :(得分:1)

服务的OnCreate:使用WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH标志。

@Override
    public void onCreate() {
        super.onCreate();
        Toast.makeText(getBaseContext(),"onCreate", Toast.LENGTH_LONG).show();
        mView = new HUDView(this);
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
                WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
                PixelFormat.TRANSLUCENT);
        params.gravity = Gravity.RIGHT | Gravity.TOP;
        params.setTitle("Load Average");
        WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
        wm.addView(mView, params);
    }

现在,您将开始获取每个点击事件。

请参阅此Creating a system overlay window (always on top)

相关问题