Como mudar a cor da barra de status no android

? codercat @ | Original: StackOverFlow
---

Primeiro de tudo que não é um duplicatas de http://stackoverflow.com/questions/9044970/how-to-change-the-background-color-of-android-status-bar

Como eu posso mudar a cor da barra de status pelo qual cor tem em barra de navegação.

eu quero a cor da barra de status com base na navegação barra de cores

Como mudar a cor da barra de status no android

---

Top 5 Responder

1codercat @

Update:

Lollipop:

public abstract void setStatusBarColor (int color)

Adicionado em nível API 21

Define a cor da barra de status para . Para isso entre em vigor, a janela deve estar puxando a barra de sistema de fundos com FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS e FLAG_TRANSLUCENT_STATUS não deve ser definido. Se não é opaco, considerar a definição de SYSTEM_UI_FLAG_LAYOUT_STABLE e SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN .

offcial : http://developer.android.com/reference/android/view/Window.html#setStatusBarColor(int )

Exemplo: http://antonioleiva.com/material-design-everywhere/

https://chris.banes.me/2014/10/17/appcompat-v21/

Como mudar a cor da barra de status no android

O transitionName para o fundo vista será " android: status: background".

Ele só é possível KitKat e depois.

Aplicar fundo tintométrico para a interface do usuário do sistema Android ao utilizar KitKat modos translúcidas.

Como mudar a cor da barra de status no android

https://github.com/jgilfelt/SystemBarTint

2Giorgio @

Android 5.0 Lollipop introduzido material de desenho tema que as cores automaticamente a barra de status com base no valor ColorPrimaryDark do tema.

This is supported on device pre-lollipop thanks to the library support-v7-appcompat starting from version 21. https://chris.banes.me/2014/10/17/appcompat-v21/

Como mudar a cor da barra de status no android

https://developer.android.com/preview/material/theme.html

3itzhar @

esta é uma maneira muito fácil de fazer isso sem qualquer Library: Se a versão do OS não é suportado - sob KitKat - para que nada aconteceu . Eu faço isso etapas:

in my xml i added to the top this View:
<View
        android:id="@+id/statusBarBackground"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

Então eu fiz esse método:

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

também aqueles que você precisa ambos os métodos para obter ação Bar & amp; status de altura bar:

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

então a única coisa que você precisa é esta linha para definir o status da barra de cores :

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

Coloque esta é a sua valores - v21 / styles.xml, para permitir que esta em 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>
5mklimek @

Para alterar o status da barra de cores na API 21 e acima de uso http://developer.android.com/reference/android/view/Window.html#setStatusBarColor(int ) . Segundo javadoc, também precisamos definir algumas bandeiras na janela .

Trecho de código de trabalho:

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