2015-03-25 3 views
3

я видел в некоторых приложениях в строке состояния цвет может быть изменен и соответствует как то, что делается в уровне апи 21.Изменить статус/цвет панели уведомлений на api ниже 21 android?

Я искал и нашел это решение Source

<style name="Theme.MyTheme" parent="Theme.AppCompat.Light"> 
<!-- Set AppCompat’s color theming attrs --> 
<item name="colorPrimary">@color/my_awesome_red</item> 
<item name="colorPrimaryDark">@color/my_awesome_darker_red</item> 
<!-- Other attributes --> 
</style> 

Но это не работает

Это мой код

<style name="ToolbarTheme" parent="Theme.AppCompat"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="colorPrimary">@color/ColorPrimary</item> 
    <item name="colorPrimaryDark">@color/ColorPrimaryDark</item> 
</style> 
+0

StatusBar не может быть окрашен до уровня api 21. – reVerse

+0

Как насчет этого ?? https://developer.android.com/training/material/compatibility.html#SupportLib – WISHY

+0

Пожалуйста, смотрите этот [StackO-Post] (http://stackoverflow.com/a/26623245/982852) – reVerse

ответ

-1

стиль Если вы имеете в виду цвет AcionBar, вы можете изменить программно цвет с этим кодом:

getSupportActionBar().setBackgroundDrawable(new Color.Drawable(Color.rgb(120,0,47))); 

Изменить номера, чтобы выбрать свой собственный цвет.

+2

Нет Я не говорю о панели действий, но о статусе/панели уведомлений – WISHY

+0

Хорошо, попробуйте http://stackoverflow.com/questions/22192291/how-to-change-the-status-bar-color-in-android – DaSound

+1

Я хочу поддержку перед леденец. Я знаю, как делать леденец. – WISHY

-1

StatusBar предназначен только для устройств с уровнем API более 21. Если ваш минимальный уровень API меньше, чем это, вам необходимо внести некоторые изменения в ваш исходный файл java. Перейдите в исходный файл, к которому вы хотите добавить цвет строки состояния. Затем заверните метод OnCreate() с аннотацией @TargetApi(Build.VERSION_CODES.LOLLIPOP).

Затем внутри метода вы должны проверить, способно или нет устройство, как показано ниже.

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
window.setStatusBarColor(getResources().getColor(R.color.Statusbar)); 
    } 

Надеюсь, это сработает .. !!

+0

Это действительно не отвечает на исходный вопрос, они уже, похоже, знают, что вы можете изменить строку состояния таким образом на Lollipop и выше. Единственное решение, которое я смог найти, это эта библиотека: https://github.com/jgilfelt/SystemBarTint – CodyEngel

Смежные вопросы