Android状态栏背景设置(透明化、调色、背景融合)

前言:

         开发的时候,我们可能遇到这样的问题,顶部状态栏和背景颜色不同,很难看。

                                                                             Android状态栏背景设置(透明化、调色、背景融合)_第1张图片

但是我们想要的或许是这样的效果(背景融合或者色调统一),瞬间好看了是不是

Android状态栏背景设置(透明化、调色、背景融合)_第2张图片 Android状态栏背景设置(透明化、调色、背景融合)_第3张图片

方法来了

   第一种背景融合

  直接用代码实现(需要安卓5.0以上),首先在activity super.onCreate之后  setContentView之前(先对版本号进行判断)

if (Build.VERSION.SDK_INT >= 21){
            View decorView = getWindow().getDecorView();
            decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
            getWindow().setStatusBarColor(Color.TRANSPARENT);
        }
/*注解:getWindow().getDecorView()拿到当前活动DecorView,
再setSystemUiVisibility()改变系统UI的显示
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和View.SYSTEM_UI_FLAG_LAYOUT_STABLE
就表示活动的布局会显示在状态栏上面,再将状态栏设置为透明色setStatusBarColor()*/

然后在根布局下加上

 

android:fitsSystemWindows="true"

Android状态栏背景设置(透明化、调色、背景融合)_第4张图片

二、更改状态栏颜色。

首先 先看看这张图,理解一下我们创建工程后,系统默认的给我们初始化的一些属性。

Android状态栏背景设置(透明化、调色、背景融合)_第5张图片

 

通过上图,我们可以通过设置不同的属性来达到控制不同位置颜色的目的,下面给出使用示例,修改res/colors里面的内容:



    #56E336
    #EDED19
    #03DAC5

主要是设置 colorPrimary,colorPrimaryDark这两个属性的值来设置状态栏的颜色,需要注意的是:

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

2.parent主题必须是 Theme.AppCompat 开头,兼容包下的主题,所以必须一用 v7 包。
 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Android学习)