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

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

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

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

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

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

version="1.0" encoding="utf-8"?>  
 
      
 

注意:几个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两个颜色。

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

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

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

Design风格

你可能感兴趣的:(【android开发技巧】)