为了账号安全,请及时绑定邮箱和手机立即绑定

如何更改状态栏颜色以匹配Lollipop中的应用程序?

如何更改状态栏颜色以匹配Lollipop中的应用程序?

翻过高山走不出你 2019-12-12 14:19:24
在新的Lollipop更新中,我注意到使用本地Google应用程序时,状态栏的颜色会发生变化,以匹配您正在运行的应用程序上的操作栏。我也看到它也在Twitter应用程序上,因此我猜测不是只有Google才能做到这一点。有谁知道如何做到这一点?
查看完整描述

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颜色


查看完整回答
反对 回复 2019-12-12
?
眼眸繁星

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的这张图片解释了有关颜色调色板的更多信息。您可以在此链接上阅读更多内容。


查看完整回答
反对 回复 2019-12-12
?
拉丁的传说

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>


查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 485 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信