更改api 21以下的状态/通知栏颜色android?

时间:2015-03-25 06:04:52

标签: android colors android-5.0-lollipop statusbar

我在某些应用程序中看到状态栏颜色可以更改并与api级别21中的匹配进行匹配。

我搜索并找到了这个解决方案 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>

2 个答案:

答案 0 :(得分:-1)

如果您的意思是AcionBar的颜色,您可以使用以下代码以编程方式更改颜色:

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

更改数字以选择您自己的颜色。

答案 1 :(得分:-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));
    }

希望它有效.. !!