2014-09-10 81 views
0

我在尝试制作自定义导航按钮,并通过为我的设备生根来禁用android提供的默认导航按钮。我希望我的自定义导航按钮在一段时间后(例如5秒)消失。我设法做到了。我想做出这样的事情,只要我触摸屏幕上的任何位置,我就可以检测触摸事件并显示导航栏。无论我在主屏幕还是任何应用程序,我都可以收到触摸事件。有没有办法做到这一点,或者我需要去android源代码?在任何屏幕上接收触摸事件

谢谢

回答

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)

+0

嗨,感谢您的回复。我试过这样做,但没有奏效。我只能在最上方的窗口收到活动。我搜索了很多,我认为它不再适用于4.X.如果我错了,请告诉我。 – user2430771 2014-09-11 16:20:55