Comment changer la couleur de la barre d'état dans Android?

427

Tout d'abord, ce n'est pas un doublon comme dans Comment changer la couleur d'arrière-plan de la barre d'état Android

Comment changer la couleur de la barre d'état qui devrait être la même que dans la barre de navigation.

Je veux que la couleur de la barre d'état soit la même que la couleur de la barre de navigation

entrez la description de l'image ici

codercat
la source
2
il n'est possible qu'après kitkat @MarkBuikema
codercat
4
Comme le suggère Niels, il existe un ATTRIBUT DE THÈME depuis la v21 appelée android:statusBarColor. Vous pouvez simplement l'ajouter à values-v21/styles.xml.
Lévite
@MarkBuikema Comment est-ce même lié à l'accès root!
steve moretz

Réponses:

625

Android 5.0 Lollipop a introduit le thème Material Design qui colore automatiquement la barre d'état en fonction de la colorPrimaryDarkvaleur du thème.

Ceci est pris en charge sur la pré-sucette de l'appareil grâce à la bibliothèque support-v7-appcompat à partir de la version 21. Blogpost sur le support appcompat v21 de Chris Banes

entrez la description de l'image ici

En savoir plus sur le thème Material sur le site officiel des développeurs Android

Giorgio
la source
29
pour une raison quelconque, l'attribut colorPrimaryDark ne fonctionne pas pour moi. essayé sur l'émulateur v21
déviant
3
Cela fonctionne, vous devez voir les changements sur l'émulateur pas sur l'aperçu de la mise en page [il ne s'affiche pas]
Mightian
6
colorPrimaryDark ne fonctionne pas pour moi non plus sur un émulateur API 18. De l'article lié à propos de appcompat: "Sur les anciennes plates-formes, AppCompat émule le thème des couleurs lorsque cela est possible. Pour le moment, cela se limite à colorer la barre d'action et certains widgets."
Adam Johns
12
Que diriez-vous de changer la couleur de la police dans la barre d'état? Les documents ne disent rien à ce sujet.
Scott Biggs
J'ai essayé de la même manière. cela fonctionne parfaitement dans la plupart de tous les appareils, mais j'ai Samsung Galaxy S4 exécutant OS 5.0.1 et dans cette barre d'état du téléphone, la couleur est noire. Et une fois que je vais à une autre activité et que je reviens à l'activité précédente, ma couleur de barre d'état est changée en couleur de thème d'application.
Quelle
364

Mise à jour:

Sucette:

public abstract void setStatusBarColor (int color)

Ajouté au niveau 21 de l'API

Android Lollipop a apporté la possibilité de changer la couleur de la barre d'état dans votre application pour une expérience utilisateur plus immersive et en harmonie avec celle de Google Material Design Guidelines.

Voici comment modifier la couleur de la barre d'état à l'aide de la nouvelle window.setStatusBarColorméthode introduite dans API level 21.

Changer la couleur de la barre d'état nécessite également de définir deux drapeaux supplémentaires sur la fenêtre; vous devez ajouter le FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDSdrapeau et effacer le FLAG_TRANSLUCENT_STATUSdrapeau.

Code de travail:

import android.view.Window;

...

Window window = activity.getWindow();

// clear FLAG_TRANSLUCENT_STATUS flag:
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

// add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

// finally change the color
window.setStatusBarColor(ContextCompat.getColor(activity,R.color.my_statusbar_color));

Référence développeur officielle: setStatusBarColor (int)

Exemple: matière-conception-partout

Chris Banes Blog- appcompat v21: conception de matériel pour les appareils pré-Lollipop!

entrez la description de l'image ici

L' transitionNamearrière-plan de la vue sera android:status:background.

codercat
la source
2
Une solution pour la compatibilité descendante?
Adam Hurwitz
Comme indiqué dans la réponse de Niels: vous pouvez également configurer la couleur de la barre d'état via le thème / style en définissant android:statusBarColorvotre values-v21/styles.xmlfichier sur androiddocs.com/training/material/theme.html comme ceci<item name="android:statusBarColor">@color/primary_color</item>
JL West
4
je peux changer la couleur de la barre d'état en blanc, mais je ne vois pas l'icône de notification comme la batterie, comment puis-je résoudre ce problème?
MNFS
1
vous n'avez aucune idée de combien vous venez de m'aider ..
Abhishek Dhyani
223

Placez ceci est votre values-v21 / styles.xml, pour l'activer sur Lollipop:

<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>
        <item name="android:statusBarColor">@color/color_primary</item>
    </style>
</resources>
Niels
la source
34
cela nécessite min API 21
Roman
50
C'est probablement pourquoi il a suggéré de le mettre dans values-v21 / styles.xml ;-) Semble être la réponse la plus précise à ce jour !!
Lévite
Mais cela signale toujours un avertissement !!?
Nihal Sharma
quelle est la fonction pour compat? barre d'état
blackHawk
vous pouvez ajouter un targeApiattribut si vous souhaitez conserver un fichier de style unique. Lisez ma réponse pour référence stackoverflow.com/a/48565459/4291272
Faisal Shaikh
50

c'est un moyen très facile de le faire sans aucune bibliothèque: si la version du système d'exploitation n'est pas prise en charge - sous kitkat - alors rien ne se passe. je fais ces étapes:

  1. dans mon xml j'ai ajouté en haut cette vue:
<View
        android:id="@+id/statusBarBackground"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

alors j'ai fait cette méthode:

 public void setStatusBarColor(View statusBar,int color){
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
           Window w = getWindow();
           w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
           //status bar height
           int actionBarHeight = getActionBarHeight();
           int statusBarHeight = getStatusBarHeight();
           //action bar height
           statusBar.getLayoutParams().height = actionBarHeight + statusBarHeight;
           statusBar.setBackgroundColor(color);
     }
}

vous avez également besoin de ces deux méthodes pour obtenir la barre d'action et la hauteur de la barre d'état:

public int getActionBarHeight() {
    int actionBarHeight = 0;
    TypedValue tv = new TypedValue();
    if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
    {
       actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
    }
    return actionBarHeight;
}

public int getStatusBarHeight() {
    int result = 0;
    int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
    if (resourceId > 0) {
        result = getResources().getDimensionPixelSize(resourceId);
    }
    return result;
}

alors la seule chose dont vous avez besoin est cette ligne pour définir la couleur de la barre d'état:

setStatusBarColor(findViewById(R.id.statusBarBackground),getResources().getColor(android.R.color.white));
itzhar
la source
1
où dois-je placer l'élément de vue? devrait-il être au-dessus de la disposition principale?
Emil Reña Enriquez
Oui. Dans votre xml. Au sommet.
itzhar
Attention: ne fonctionne que pour Android> = 19 API. Dans mon cas, j'ai besoin d'assistance à partir de 16 ans
Anton Kizema
setStatusBarColor (findViewById (android.R.id.statusBarBackground), getResources (). getColor (android.R.color.white));
AndroidLad
34

Comme @Niels l'a dit, vous devez placer dans values-v21 / styles.xml:

<item name="android:statusBarColor">@color/black</item>

Mais ajoutez tools:targetApi="lollipop"si vous voulez un seul style.xml, comme:

<item name="android:statusBarColor" tools:targetApi="lollipop">@color/black</item>
Faisal Shaikh
la source
3
Merci beaucoup pour "targetApi". Je n'aime pas que mon thème soit réparti sur plusieurs fichiers. :)
plexus
31

Eh bien, la solution Izhar était OK mais, personnellement, j'essaye d'éviter du code qui ressemble à ceci:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//Do what you need for this SDK
};

De plus, je n'aime pas non plus dupliquer le code. Dans votre réponse, je dois ajouter une telle ligne de code dans toutes les activités:

setStatusBarColor(findViewById(R.id.statusBarBackground),getResources().getColor(android.R.color.white));

J'ai donc pris la solution Izhar et utilisé XML pour obtenir le même résultat: créer une mise en page pour StatusBar status_bar.xml

<View xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="@dimen/statusBarHeight"
     android:background="@color/primaryColorDark"
     android:elevation="@dimen/statusBarElevation">

Remarquez les attributs de hauteur et d'élévation, ceux-ci seront définis dans les valeurs, valeurs-v19, valeurs-v21 plus bas.

Ajoutez cette disposition à la disposition de vos activités à l'aide de include, main_activity.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/Black" >

<include layout="@layout/status_bar"/>
<include android:id="@+id/app_bar" layout="@layout/app_bar"/>
//The rest of your layout       
</RelativeLayout>

Pour la barre d'outils, ajoutez l'attribut de marge supérieure:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="@color/primaryColor"
app:theme="@style/MyCustomToolBarTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
android:elevation="@dimen/toolbarElevation"
android:layout_marginTop="@dimen/appBarTopMargin"
android:textDirection="ltr"
android:layoutDirection="ltr">

Dans votre appTheme style-v19.xml et styles-v21.xml, ajoutez la fenêtreTranslucent attr:

styles-v19.xml, v21:

<resources>
<item name="android:windowTranslucentStatus">true</item>
</resources>

Et enfin, sur vos dimens, dimens-v19, dimens-v21, ajoutez les valeurs de la barre d'outils topMargin et la hauteur de statusBarHeight: dimens.xml pour moins que KitKat:

<resources>
<dimen name="toolbarElevation">4dp</dimen>
<dimen name="appBarTopMargin">0dp</dimen>
<dimen name="statusBarHeight">0dp</dimen>
</resources>

La hauteur de la barre d'état est toujours 24dp dimens-v19.xml pour KitKat et au-dessus:

<resources>
<dimen name="statusBarHeight">24dp</dimen>
<dimen name="appBarTopMargin">24dp</dimen>
</resources>

dimens-v21.xml pour Lolipop, ajoutez simplement l'élévation si nécessaire:

<resources>
<dimen name="statusBarElevation">4dp</dimen>
</resources>

Voici le résultat pour Jellybean KitKat et Lollipop:

entrez la description de l'image ici

Moti Bartov
la source
Donc, au lieu de mettre le code de vérification, vous l'avez mis en XML. Votre solution fonctionnera sur Kitkat, tout comme ce qu'il a obtenu.
développeur Android
26

Vous pouvez utiliser ce code simple:

One-liner à Kotlin:

window.statusBarColor = ContextCompat.getColor(this, R.color.colorName)

Réponse originale avec Java et vérification de version manuelle:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    getWindow().setStatusBarColor(getResources().getColor(R.color.colorAccentDark_light, this.getTheme()));
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    getWindow().setStatusBarColor(getResources().getColor(R.color.colorAccentDark_light));
}
steve moretz
la source
Vous pouvez encore simplifier cela en utilisant ContextCompat. A Kotlin c'est alors juste ça:window.statusBarColor = ContextCompat.getColor(this, R.color.colorName)
sunadorer
Au moment où je l'ai écrit, je n'avais pas essayé kotlin.Pourquoi ne modifiez-vous pas la réponse et je peux l'approuver :)
steve moretz
Bonne idée. J'ai inclus ma suggestion dans la réponse comme référence facile pour les futurs visiteurs
sunadorer
la couleur de la barre d'état a changé au-dessus de Build.VERSION_CODES.M. ne fonctionne pas sous Lollipop
Muhammed Haris
@MuhammedHaris cela fonctionne. Avez-vous utilisé le code kotlin ou java?
steve moretz
23

Créez simplement un nouveau thème dans res / values ​​/ styles.xml où vous modifiez le "colorPrimaryDark" qui est la couleur de la barre d'état:

<style name="AppTheme.GrayStatusBar" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimaryDark">@color/colorGray</item>
</style>

Et modifiez le thème d'activité dans AndroidManifest.xml en celui que vous voulez, lors de l'activité suivante, vous pouvez changer la couleur pour revenir à celle d'origine en sélectionnant le thème d'origine:

<activity
    android:name=".LoginActivity"
    android:theme="@style/AppTheme.GrayStatusBar" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

Voici à quoi devrait ressembler votre res / values ​​/ colours.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#c6d6f0</color>
    <color name="colorGray">#757575</color>
</resources>
comparer
la source
1
Je pense que c'est la solution la plus simple mais la plus propre. Pas besoin d'avoir un niveau d'API minimum de 21 , juste une simple substitution. Mérite plus de votes positifs.
tahsinRupam
Cela ne fonctionnait pas lors de l'exécution sur Nougat et le niveau d'api était réglé sur 19. Cela fonctionnait si je définissais android: theme sous le nœud d'application dans le manifeste.
AndroidDev
18

Pour changer la couleur de la sucette ci-dessus, ajoutez-la simplement à votre styles.xml

<item name="android:statusBarColor">@color/statusBarColor</item>

mais rappelez - vous , si vous voulez avoir une couleur claire pour la barre d'état, ajoutez aussi cette ligne

<item name="android:windowLightStatusBar">true</item>
Amin Keshavarzian
la source
1
Merci, c'est aussi une réponse utile.
Andrew Grow
16

Vous pouvez changer la couleur de la barre d'état avec cette fonction. fonctionne sur android L signifie API 21 et supérieur et nécessite une chaîne de couleur telle que "#ffffff".

private void changeStatusBarColor(String color){
    if (Build.VERSION.SDK_INT >= 21) {
        Window window = getWindow();
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.setStatusBarColor(Color.parseColor(color));
    }
}
sajad abbasi
la source
15

J'avais cette exigence: changer la couleur de la barre d'état par programmation en la maintenant transparente , pour permettre au tiroir de navigation de se dessiner en chevauchant la barre d'état transparente.

Je ne peux pas faire ça en utilisant l'API

getWindow().setStatusBarColor(ContextCompat.getColor(activity ,R.color.my_statusbar_color)

Si vous cochez ici dans le débordement de pile, tout le monde avant cette ligne de code définissez la transparence de la barre d'état sur solide avec

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)

Je suis capable de gérer la couleur et la transparence de la barre d'état comme ceci:

  • Android 4: vous ne pouvez pas faire grand-chose, car vous ne pouvez pas gérer la couleur de la barre d'état à partir de l'API ... la seule chose que vous pouvez faire est de définir la barre d'état comme translucide et de déplacer un élément coloré de votre interface utilisateur sous le statut bar. Pour ce faire, vous devez jouer avec

    android:fitsSystemWindows="false"

    dans votre mise en page principale. Cela vous permet de dessiner votre mise en page sous la barre d'état. Ensuite, vous devez jouer avec du rembourrage avec le haut de votre disposition principale.

  • Android 5 et supérieur: vous devez définir un style avec

    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>

    cela permet au tiroir de navigation de chevaucher la barre d'état.

    Ensuite, pour changer la couleur en gardant la barre d'état transparente, vous devez définir la couleur de la barre d'état avec

    drawerLayout.setStatusBarBackgroundColor(ContextCompat.getColor(activity, R.color.my_statusbar_color))

    où tiroirLayout est défini comme ceci

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">
DSoldo
la source
Cela a fonctionné pour moi sans <item name="android:windowDrawsSystemBarBackgrounds">true</item>. Quoi qu'il en soit, après des jours de recherche, j'ai trouvé quelque chose qui fonctionne vraiment (testé uniquement sur Lolllipop pour le moment). Merci
DenisGL
j'avais le même problème et votre réponse m'a aidé à résoudre ce problème.
A.Gun
7

Modifiez colorPrimary dans le fichier colors.xml dans Values ​​à la couleur que vous souhaitez que la barre d'état soit. Par exemple:

   <resources>
<color name="colorPrimary">#800000</color> // changes the status bar color to Burgundy
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="red">#FF0000</color>
<color name="white">#FFFFFF</color>
<color name="cream">#fffdd0</color>
<color name="burgundy">#800000</color>

PhilipS
la source
7

Pour changer la couleur de la barre d'état, allez à res/values-v21/styles.xmlet la couleur de la barre d'état

<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>
        <item name="android:statusBarColor">#0000FF</item>
    </style>
</resources>
puissance radhason
la source
Hé, pourriez-vous m'aider? Je n'ai aucune idée d'Android et je ne peux pas commencer à apprendre maintenant. J'ai une application simple qui exécute un fichier html. Je meurs d'envie de changer la couleur de la barre d'état parce que le haut et le bas du # 000 sont horribles pour mon palais. Mais je ne peux tout simplement pas, je ne trouve même pas le fichier styles.xml ... Si je pouvais vous envoyer mon apk et que vous me le définissiez, je vous en serais reconnaissant!
Thiago Soubra
6

Si vous souhaitez modifier la couleur de la barre d'état par programme (et à condition que l'appareil dispose d'Android 5.0). C'est un moyen simple de changer statusBarColor à partir de n'importe quelle activité et des méthodes très simples lorsque différents fragments ont une couleur de barre d'état différente.

 /**
 * @param colorId id of color
 * @param isStatusBarFontDark Light or Dark color
 */
fun updateStatusBarColor(@ColorRes colorId: Int, isStatusBarFontDark: Boolean = true) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        val window = window
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
        window.statusBarColor = ContextCompat.getColor(this, colorId)
        setSystemBarTheme(isStatusBarFontDark)
    }
}

/** Changes the System Bar Theme.  */
@RequiresApi(api = Build.VERSION_CODES.M)
private fun setSystemBarTheme(isStatusBarFontDark: Boolean) {
    // Fetch the current flags.
    val lFlags = window.decorView.systemUiVisibility
    // Update the SystemUiVisibility depending on whether we want a Light or Dark theme.
    window.decorView.systemUiVisibility = if (isStatusBarFontDark) lFlags and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv() else lFlags or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
}
Nabin
la source
5

Si vous souhaitez travailler sur Android 4.4 et supérieur, essayez ceci. Je me réfère à la réponse de Harpreet et à ce lien. Android et la barre d'état transparente

Tout d'abord, appelez la méthode setStatusBarColored dans la méthode onCreate d'Activity (je l'ai mise dans une classe util). J'utilise une image ici, vous pouvez la changer pour utiliser une couleur.

public static void setStatusBarColored(Activity context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
    {
        Window w = context.getWindow();
        w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        int statusBarHeight = getStatusBarHeight(context);

        View view = new View(context);
        view.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        view.getLayoutParams().height = statusBarHeight;
        ((ViewGroup) w.getDecorView()).addView(view);
        view.setBackground(context.getResources().getDrawable(R.drawable.navibg));
    }
}

public static int getStatusBarHeight(Activity context) {
    int result = 0;
    int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
    if (resourceId > 0) {
        result = context.getResources().getDimensionPixelSize(resourceId);
    }
    return result;
}

Avant: avant

Après: après

La couleur de la barre d'état a été modifiée, mais la barre de navigation est coupée, nous devons donc définir la marge ou le décalage de la barre de navigation dans la méthode onCreate.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT, (int)(this.getResources().getDimension(R.dimen.navibar_height)));
        layoutParams.setMargins(0, Utils.getStatusBarHeight(this), 0, 0);

        this.findViewById(R.id.linear_navi).setLayoutParams(layoutParams);
    }

Ensuite, la barre d'état ressemblera à ceci.

barre d'état

Allan
la source
4

C'est ce qui a fonctionné pour moi dans KitKat et avec de bons résultats.

public static void setTaskBarColored(Activity context) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
        {
            Window w = context.getWindow();
            w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            //status bar height
            int statusBarHeight = Utilities.getStatusBarHeight(context);

            View view = new View(context);
            view.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            view.getLayoutParams().height = statusBarHeight;
            ((ViewGroup) w.getDecorView()).addView(view);
            view.setBackgroundColor(context.getResources().getColor(R.color.colorPrimaryTaskBar));
        }
    }
Harpreet
la source
2

Encore une solution:

final View decorView = w.getDecorView();
View view = new View(BaseControllerActivity.this);
final int statusBarHeight = UiUtil.getStatusBarHeight(ContextHolder.get());
view.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight));
view.setBackgroundColor(colorValue);
((ViewGroup)decorView).addView(view);
Vova K.
la source
Cela fonctionnera-t-il sur les tablettes où la barre d'état est en bas de l'écran?
guy.gc
6
ce qui est «w» et «UiUtil» ici?
Manav Patadia
2

changez le colorPrimaryDark à votre couleur désirée dans le fichier res / values ​​/ styles.xml

    <resources>
        <color name="colorPrimary">#800000</color>
        <color name="colorPrimaryDark">#303F9F</color> //This Line
        <color name="colorAccent">#FF4081</color>
        <color name="red">#FF0000</color>
        <color name="white">#FFFFFF</color>
       <color name="cream">#fffdd0</color>
       <color name="burgundy">#800000</color>
    </resources>
Engr Syed Rowshan Ali
la source