recuperar ocultar notificaciones iconos estado color cambiar barra android android-5.0-lollipop android-styles android-statusbar

ocultar - Color de los iconos de la barra de estado de Android



ocultar iconos de la barra de estado android (6)

Me preguntaba si es posible cambiar el color de los iconos de la barra de estado ( no el color de la barra de estado, colorPrimaryDark ) Digamos que quiero esta barra de estado con:
<item name="colorPrimaryDark">@android:color/white</item>

y los íconos en negro, ¿es posible?

Gracias.

EDITAR:

Nuevo en la vista previa del desarrollador M: windowLightStatusBar. Activar esto en su tema le dice al sistema que use un primer plano oscuro, útil para barras de estado de colores más claros. Tenga en cuenta que la vista previa M parece tener un error en el que los iconos de notificación permanecen en blanco, mientras que los iconos de estado del sistema cambian correctamente a negro semitransparente.

de: Roman Nurik post Google+


@eOnOe ha respondido cómo podemos cambiar el tono de la barra de estado a través de xml. Pero también podemos cambiarlo dinámicamente en el código:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { View decor = getWindow().getDecorView(); if (shouldChangeStatusBarTintToDark) { decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } else { // We want to change tint color to white again. // You can also record the flags in advance so that you can turn UI back completely if // you have set other flags before, such as translucent or full screen. decor.setSystemUiVisibility(0); } }


Establecer windowLightStatusBar en true no funciona con teléfonos Mi, algunos teléfonos Meizu, teléfonos Blackview, WileyFox, etc. He encontrado un truco para dispositivos Mi y Meizu. Esta no es una solución integral de este problema de rendimiento, pero tal vez sería útil para alguien.

Y creo que sería mejor decirle a su cliente que la barra de estado para colorear (por ejemplo) blanco, no es una buena idea. en lugar de usar diferentes hacks, sería mejor definir el colorPrimaryDark apropiadoPrimaryDark de acuerdo con las pautas


No desde Lollipop. A partir de Android 5.0, las pautas dicen:

Los íconos de notificación deben ser completamente blancos.

Incluso si no lo son, el sistema solo considerará el canal alfa de su icono, haciéndolos blancos

Solución alternativa

La única forma de tener un ícono de color en Lollipop es reducir su targetSdkVersion a valores <21 , pero creo que sería mejor seguir las pautas y usar solo íconos blancos.

Sin embargo, si todavía decide que desea iconos de colores, puede usar el método DrawableCompat.setTint de la nueva biblioteca de soporte v4.


Sí, es posible cambiarlo a gris (sin colores personalizados), pero esto solo funciona desde la API 23 y superior, solo necesita agregar esto en sus valores-v23 / styles.xml

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


Sí, puedes cambiarlo. pero en la api 22 y superior, usando NotificationCompat.Builder y setColorized (true):

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, context.getPackageName()) .setContentTitle(title) .setContentText(message) .setSmallIcon(icon, level) .setLargeIcon(largeIcon) .setContentIntent(intent) .setColorized(true) .setDefaults(0) .setCategory(Notification.CATEGORY_SERVICE) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setPriority(NotificationCompat.PRIORITY_HIGH);


si tiene un nivel de API inferior a 23, debe usarlo de esta manera. funcionó para mí declarar esto bajo v21 / style .

<item name="colorPrimaryDark" tools:targetApi="23">@color/colorPrimary</item> <item name="android:windowLightStatusBar" tools:targetApi="23">true</item>