Maison >Java >javaDidacticiel >Android implémente une barre de notification immersive. La couleur d'arrière-plan de la barre de notification change en fonction de la couleur d'arrière-plan de la barre de navigation de l'application.

Android implémente une barre de notification immersive. La couleur d'arrière-plan de la barre de notification change en fonction de la couleur d'arrière-plan de la barre de navigation de l'application.

高洛峰
高洛峰original
2017-01-20 15:48:031906parcourir

Récemment, de nombreuses applications ont satisfait à la barre de notification immersive. La barre de notification dite immersive : elle masque les différents espaces de fonctionnement de l'interface utilisés pour la navigation dans un scénario dominé par le contenu du programme, à travers une interface relativement "invisible". la visibilité de l'utilisateur sur le contenu lui-même.

Le mode d'immersion de la barre de notification du dernier système Android 4.4 est que lorsque le logiciel est ouvert, la barre de notification et la couleur supérieure du logiciel sont intégrées. Cela rend non seulement le logiciel et le système. lui-même plus intégré. La couleur de la barre de notification du téléphone mobile n'est plus seulement blanche ou noire. Le téléphone mobile Xiaomi Mi 4 que j'utilise, le logiciel intégré du téléphone mobile Mi 4 prend en charge la barre de notification immersive. Par exemple : vous pouvez y jeter un œil. sur votre propre QQ, la couleur d'arrière-plan de son titre est bleue, puis la barre de notification deviendra également bleue. Cela n’était peut-être pas possible auparavant, mais cela a été pris en charge récemment.

Je ne sais pas quand miui6 sera supporté de manière uniforme. Laissez-moi vous expliquer comment faire en sorte que votre application prenne en charge la barre de notification immersive :

Certains experts l'ont déjà étudiée sur github. Parlons de la façon de l'implémenter :

Téléchargez d'abord SystemBarTint et convertissez-le. à l'intérieur, copiez SystemBarTintManager.java et placez-le dans votre propre projet. Jugez et définissez la couleur de la barre de notification dans la méthode d'activité onCreate() (la couleur doit être définie en fonction de l'arrière-plan de la barre de titre du logiciel)

Code 1 :

Le code est le suivant :

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
setTranslucentStatus(true);
}
SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
tintManager.setStatusBarTintResource(R.color.statusbar_bg);//通知栏所需颜色

Ce qui suit permet de définir l'état de la barre de notification

@TargetApi(19)
private void setTranslucentStatus(boolean on) {
Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
if (on) {
winParams.flags |= bits;
} else {
winParams.flags &= ~bits;
}
win.setAttributes(winParams);
}

C'est tout. L'implémentation parfaite d'une barre de notification immersive. Notez que le système doit être supérieur à 4.4. Les amis, venez vite l'essayer.

Code 2 :

La couleur d'arrière-plan de la barre de notification change en fonction de la couleur d'arrière-plan de la barre de navigation de l'application (titre en haut).
C'est également ce qu'on appelle la barre d'état immersive, proposée par Google dans Android 4.4 et supérieur.
Le style est tel qu'indiqué dans la figure :

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}

Ajoutez ensuite le fichier de mise en page XML :

android:clipToPadding="false"
android:fitsSystemWindows="true"

Plus d'implémentations Android de notification immersive notifications de la barre La couleur d'arrière-plan de la barre change en fonction de la couleur d'arrière-plan de la barre de navigation de l'application. Pour les articles connexes, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn