3 回答
TA贡献1820条经验 获得超10个赞
要更改状态栏颜色,请使用setStatusBarColor(int color)。根据javadoc,我们还需要在窗口上设置一些标志。
工作代码段:
Window window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(ContextCompat.getColor(activity, R.color.example_color));
请记住,根据Material Design准则,状态栏颜色和操作栏颜色应该不同:
ActionBar应该使用原色500色
StatusBar应该使用主要的700颜色
TA贡献1873条经验 获得超9个赞
只需在您的styles.xml中添加它即可。colorPrimary用于操作栏,而colorPrimaryDark用于状态栏。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primary_dark</item>
</style>
来自开发人员android的这张图片解释了有关颜色调色板的更多信息。您可以在此链接上阅读更多内容。
TA贡献1789条经验 获得超8个赞
设置状态栏颜色的另一种方法是通过style.xml。
为此,请在res / values-v21文件夹下创建具有以下内容的style.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="android:Theme.Material">
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:colorPrimaryDark">@color/blue_dark</item>
</style>
</resources>
编辑:正如注释中指出的那样,使用AppCompat时,代码是不同的。在文件res / values / style.xml中,改用:
<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>
- 3 回答
- 0 关注
- 515 浏览
添加回答
举报