Android状态栏透明方法,与工具栏颜色一致

Android状态栏透明方法,与工具栏颜色一致,这一功能是从Android4.4开始的。

下面记录下透明方法,开发工具AndroidStudio2.3

方式一:在values-v19中添加styles.xml

1.首先要在资源目录中建立一个values-v19目录,该目录中建立styles.xml文件

文件内容,这是最新方法。

<?xml version="1.0" encoding="utf-8"?>  
<resources> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">  
        <item name="colorPrimary">@color/colorPrimary</item>  
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>  
        <item name="colorAccent">@color/colorAccent</item>  
        <item name="colorControlNormal">@color/colorLunarTitle</item>  
        <item name="android:windowTranslucentStatus">true</item>  
        <item name="android:windowTranslucentNavigation">true</item>  
    </style>  
</resources> 

注意:几个color开头的项目是主题颜色设置部分,可以不理会,实现透明功能的是最后两项。

2.然后在Java**代码中**找到你想进行状态栏透明的页面,我的页面是继承自AppCompatActivity类

@Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        // 设置透明状态栏  
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);  
        ViewGroup contentFrameLayout = (ViewGroup) findViewById(Window.ID_ANDROID_CONTENT);  
        if (contentFrameLayout != null) {  
            View parentView = contentFrameLayout.getChildAt(0);  
            if (parentView != null && Build.VERSION.SDK_INT >= 14) {  
                parentView.setFitsSystemWindows(true);  
            }  
        }  
        setContentView(R.layout.activity_main);  
}

重写onCreate方法,先进行 透明栏设置 —> 再设置View顺序很重要
到这里运行项目其实就已经透明化状态栏了,状态栏的颜色与页面的工具栏颜色一致了,但是会发现整个页面是上移的
我这里一个有一个方法:是设置Padding Top这个高度不就OK了。

3.在布局中的属性

android:clipToPadding 作用:定义布局间是否有间距

android:fitsSystemWindows=”true” 作用:意思就是设置应用布局时是否考虑系统窗口布局;如果为true,将调整系统窗口布局以适应你自定义的布局。


android:clipToPadding="true"

android:fitsSystemWindows="true"

方式二:修改values的Style

1.设置 colorPrimary,colorPrimaryDark两个颜色。

<stylename="AppTheme"parent="Theme.AppCompat.Light.NoActionBar">
     <itemname="colorPrimary">@android:color/holo_blue_bright</item>
     <itemname="colorPrimaryDark">@android:color/holo_blue_bright</item>
</style>

2.AndroidManifest.xml文件中的targetSdkVersion必须设置在21以上。

3.parent主题必须是Theme.AppCompat开头,兼容包下的主题,所以必须一用v7包。
colorPrimary,colorPrimaryDark这两个属性是Material Design风格中规定的。具体位置如下图所示:

Design风格

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值