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