Pantalla completa en WindowManager

Este es mi código:

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); } 

La vista todavía muestra la barra de estado, mTopView es una ventana de superposición. ¿Cómo obtengo la ventana de superposición para cubrir toda la pantalla? No quiero "ocultar" la barra de estado, quiero que mi actividad se superponga a ella.

[EDIT] enfatizó el texto que ya tengo esto en mi método onCreate() :

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

Y mi manifiesto define un estilo que cuenta con pantalla completa.

SCREENSHOTS

Introduzca aquí la descripción de la imagen

Así es como es actualmente, quiero que la superposición se extienda a la barra de estado también.

Todo lo que tenía que hacer era

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

Esto amplía la vista de superposición sobre la barra de estado.

Este código de "Android Application 4 Development". Usted tiene que manejar diferentes versiones de 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(); } 

Puede ocultar la barra de estado de dos maneras:

1) Defina debajo de la línea en su onCreate() actividad onCreate() .

  requestWindowFeature(Window.FEATURE_NO_TITLE); 

2) Defina el tema en el nivel de aplicación para no mostrar la barra de estado a través de la aplicación como se muestra a continuación:

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

Prueba esto..

  requestWindowFeature(Window.FEATURE_NO_TITLE); 

No ocultará su barra de estado, su aplicación será cubierta en pantalla completa sólo la barra de estado será visible

  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); } } 

Y para ocultar la barra de estado

puedes usar

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

Intenta de esta manera

 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); 

Para crear siempre una actividad de superposición de pantalla completa en 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); } 

Configuración translúcida tiene que ser habilitado externamente en xml manifiesto, de lo contrario también no funcionó.

  <item name="android:windowIsTranslucent">true</item> 
  • Disposición personalizada de Android - onDraw () nunca se llama
  • Android hacer la forma de diseño personalizado
  • Estado de envío de los controles compuestos
  • Force onLayout en un subView cuyas dimensiones no cambian
  • Android ViewGroup.setScaleX () hace que la vista se recorte
  • ¿Creación de una copia de una vista?
  • RemoveView no funciona después de LayoutInflater.inflate (resource, root, true)
  • Android - Ocultar vistas
  • Programe agregar fragmentos a viewgroup
  • Android StackOverflowError en ViewGroup.resetResolvedTextDirection
  • ¿Cómo se anima un cambio en el relleno de una vista?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.