Полноэкранный в windowmanager

Это мой код:

params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
                WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
                PixelFormat.TRANSLUCENT);

        wm = (WindowManager) getApplicationContext()
                .getSystemService(Context.WINDOW_SERVICE);
        inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mTopView = (ViewGroup) inflater.inflate(
                R.layout.activity_invisible, null);
        params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
                | WindowManager.LayoutParams.FLAG_DIM_BEHIND
                | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |WindowManager.LayoutParams.FLAG_FULLSCREEN;
    if(keep==true){
        int value = brightnessIntent.getExtras().getInt("value");
        float v=value/255.0f;
            params.dimAmount=0;
        params.alpha=v;
        rl = (RelativeLayout) mTopView.findViewById(R.id.window);
        getWindow().setAttributes(params);
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        wm.addView(mTopView, params);
}

в представлении по-прежнему отображается строка состояния,mTopView окно оверлея. Как сделать всплывающее окно на весь экран? Я не хочу" скрывать " строку состояния, я хочу, чтобы моя активность накладывалась на нее.

[EDIT]выделенный текст У меня уже есть это в моем onCreate() способ:

requestWindowFeature(Window.FEATURE_NO_TITLE); 
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

и мой манифест определяет стиль, особенности полноэкранный.

скриншоты

enter image description here

вот как это в настоящее время, я хочу, чтобы наложение также распространялось на строку состояния.

6 ответов


все, что мне нужно было сделать, это

params.flags=WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN| and the rest

это расширяет представление наложения на строку состояния.


этот код из "Android Application 4 Development". вы должны обрабатывать различные версии android

 // Hiding the Action Bar for different android versions 
    if (Build.VERSION.SDK_INT < 16) {
        // Hide the Action Bar on Android 4.0 and Lower
         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
     }else {
        // Hide the Action Bar on Android 4.1 and Higher
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
        decorView.setSystemUiVisibility(uiOptions);
        android.app.ActionBar actionBar = getActionBar();
        actionBar.hide();
     }

вы можете скрыть строку состояния двумя способами:

1) Определите под линией в вашей деятельности onCreate() метод.

  requestWindowFeature(Window.FEATURE_NO_TITLE);

2) Определите тему на уровне приложения, чтобы не показывать строку состояния через приложение, как показано ниже:

<application android:label="@string/app_name"
  android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

попробуйте это..

   requestWindowFeature(Window.FEATURE_NO_TITLE);

он не будет скрывать строку состояния, ваше приложение будет охватывать весь экран только строка состояния будет видна

           public class example extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);


    setContentView(R.layout.example);
}

}

и скрыть строку состояния

можно использовать

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

попробуй так

final WindowManager.LayoutParams params = new WindowManager.LayoutParams( 
WindowManager.LayoutParams.FLAG_FULLSCREEN, 
WindowManager.LayoutParams.FLAG_FULLSCREEN,                 
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,               
            WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
            PixelFormat.TRANSLUCENT);   

    WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);    

    ViewGroup mTopView = (ViewGroup) App.inflater.inflate(R.layout.main, null);
    getWindow().setAttributes(params);
    wm.addView(mTopView, params);

чтобы создать всегда топ полноэкранный оверлей активность в Android:

public void onCreate(Bundle savedInstanceState) {       
 super.onCreate(savedInstanceState);        

 requestWindowFeature(Window.FEATURE_NO_TITLE);
 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
 getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);             
 getWindow().setBackgroundDrawableResource(android.R.color.transparent);
 getWindow().setFormat(PixelFormat.TRANSLUCENT);
 setContentView(R.layout.main);
 }

полупрозрачная настройка должна быть включена извне в XML-манифесте, иначе она также не работает.

 <item name="android:windowIsTranslucent">true</item>

Вы можете скрыть строку заголовка с помощью:

public class MainActivity расширяет AppCompatActivity {

@Override  
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    requestWindowFeature(Window.FEATURE_NO_TITLE);  
    getSupportActionBar().hide(); 
    setContentView(R.layout.activity_main);  


}  

}

и получить полный экран с помощью:

public class MainActivity расширяет AppCompatActivity {

@Override  
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
     this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.activity_main);  


}  

}
а также вы можете использовать родитель= " тема.Совместимости приложений.NoActionBar" по стилю.в XML