android - personalizar - como cambiar el color del panel de notificaciones
Cómo cambiar el color de fondo de la barra de estado de Android (4)
En styles.xml haz esto:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryDark">@color/color_secondary</item>
<item name="colorAccent">@color/color_accent</item>
<!---Below is the code for status bar color------>
<item name="android:statusBarColor">@color/color_primary</item>
</style>
</resources>
Coloque esto en sus valores-v21 / styles.xml, para habilitarlo en Lollipop y más adelante.
Para hacerlo programáticamente haz esto:
Window window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(activity.getResources().getColor(R.color.example_color));`
Quiero cambiar el color de fondo de la barra de estado escribiendo una aplicación. Mi dispositivo Android tiene color negro, quiero cambiarlo a otro color. Vi algunas publicaciones relacionadas con esto aquí, pero están informando sobre el fondo de notificación.
Si alguien sabe esto, por favor ayúdame.
La barra de estado por defecto
Después de usar un dibujo como fondo a la barra de estado
Esto es posible en Kitkat y después.
Si desea usarlo en una aplicación (como solicitó), puede usar esta biblioteca https://github.com/jgilfelt/SystemBarTint
Solo necesitas escribir:
// set a custom tint color for all system bars
tintManager.setTintColor(Color.parseColor("#99000FF"));
// set a custom navigation bar resource
tintManager.setNavigationBarTintResource(R.drawable.my_tint);
// set a custom status bar drawable
tintManager.setStatusBarTintDrawable(MyDrawable);
Lo sentimos, a menos que esté creando una ROM personalizada, esto no es posible, a menos que solo desee cambiar la barra de estado de su aplicación.
Esto requeriría un montón de mucho trabajo.
Primero deberá agregar Theme.NoTitleBar.Fullscreen a su manifiesto
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
>
Luego, una vez que haya hecho eso, necesita crear un diseño estándar que represente la barra de estado, esto significaría que debe agregar el tiempo y también recibir todas las notificaciones de otras aplicaciones, no sé personalmente cómo hacerlo, pero Estoy seguro de que hay una manera
Si realmente quieres hacer esta buena suerte, tienes un tiempo difícil por delante.
Lo siento, a menos que tenga el conocimiento de cómo crear ROMS personalizados, no creo que esto sea posible
Si desea actualizar el color de la barra de estado en Lollipop sin actualizar su ADT y SDK y todas esas cosas relacionadas, puede usar reflexiones para alcanzar los métodos de API 21 (Lollipop) y superiores
en tu actividad:
if (Build.VERSION.SDK_INT >= 21) {
Window window = getWindow();
// original code, works on Lollipop SDKs
// window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
// window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// window.setStatusBarColor(getResources().getColor(YOUR_COLOR));
try {
// to work on old SDKs
int FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS = 0x80000000;
window.addFlags(FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
Class<?> cls = window.getClass();
Method method = cls.getDeclaredMethod("setStatusBarColor",
new Class<?>[] { Integer.TYPE });
method.invoke(window, Res.color(theme.statusColor));
} catch (Exception e) {
// upgrade your SDK and ADT :D
}
}
mi API mínimo actual es 15, si no puedes encontrar
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
en su SDK, puede obtener su valor de la documentación como lo hice con
WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
Espero que esto haya ayudado