1

我已經提出了一項服務,將黑色矩形放在每個活動的頂部,並且除狀態/通知欄和導航欄外,屏幕變黑。我的目標是隱藏一切。我怎樣才能讓這個黑色矩形變成全屏?我嘗試過使用FLAG_FULLSCREENFLAG_LAYOUT_IN_SCREEN,但它不起作用。我已閱讀關於禁用TypeGuard,但即使這不起作用。提前致謝!Android中的全屏幕服務

這裏是我的代碼

WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 

    ImageView black = new ImageView(this); 
    black.setImageResource(R.drawable.black); 

    LinearLayout layout = new LinearLayout(this); 
    layout.addView(black); 

    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
      WindowManager.LayoutParams.MATCH_PARENT, 
      WindowManager.LayoutParams.MATCH_PARENT, 
      WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, 
      WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | 
        WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, 
      PixelFormat.TRANSLUCENT); 

    params.gravity = Gravity.TOP | Gravity.LEFT; 
    params.x = 0; 
    params.y = 0; 

    windowManager.addView(layout, params); 
+0

你的問題解決了,怎麼辦? –

回答

0

試試這個:

assert getSupportActionBar() != null; 
getSupportActionBar().hide(); 
mContentView = findViewById(R.id.fullscreen_content); 
mContentView.setSystemUiVisibility(View.GONE | View.SYSTEM_UI_FLAG_FULLSCREEN); 

哪裏fullscreen_content是父佈局。

+0

這不能應用於服務。 'getSupportActionBar()'是一個可以在擴展Activity的類中使用的方法。 – jelic98

1

我解決了這個程序

if (null == mInflater) { 
     mInflater = (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    }if (mLockscreenView == null) mLockscreenView = mInflater.inflate(R.layout.view_locokscreen, null); 

mLockscreenView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 
      mWindowManager.addView(mLockscreenView, mParams); 
      final Handler handler = new Handler(); 
      mLockscreenView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() { 
       @Override 
       public void onSystemUiVisibilityChange(int visibility) { 
        handler.postDelayed(new Runnable() { 
         @Override 
         public void run() { 
          mLockscreenView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 
         } 
        },2000); 
       } 
      }); 
+0

謝謝您的回答,但這不起作用。導航鍵和狀態欄中沒有繪製服務視圖。 – jelic98

+0

我更新了答案 –

+0

這不是關於視圖。標誌不起作用。 – jelic98