2014-09-10 80 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