Android 狀態欄和虛擬導航欄顏色修改

代碼參考自:這個大神

Android5.0以上實現:(兩種方式)

實現方式一:

修改style文件夾中關于狀態欄和導航欄的設置

在src-->main-->res文件夾下創建,values-v21目錄,在其中創建styles文件夾,并在其中加入以下代碼:

狀態欄:

<item name="android:statusBarColor">@color/colorStatusBarColor</item>

虛擬導航欄:

<item name="android:navigationBarColor">@color/colorNavigationBarColor</item>

實現方式二:

代碼中進行設置(推薦)

在setConetntView(View);之前加入下面代碼

//代碼解釋:如果編譯版本的當前版本號大于等于Android5.0,則使用下面的方法

if(Build.VERSION.SDK__INT>=BUILD.VERSION_CODES.LOLLTPOP){

? ? ? ? getWindow().setStatusBar(getResource().getColor(R.color.statusbarcolor));

? ? ? ? ? ? ? ?getWindow().setNavigationBarColor(getResource().getColor(R.color.navigitionbarcolor));

}


Android4.4--5.0中實現(兩種方式)

實現方式一:

修改style文件夾中關于狀態欄和導航欄的設置

在src-->main-->res文件夾下創建,values-v19目錄,在其中創建styles文件夾,并在其中加入以下代碼:

<item name="android:windowTranslucentStatus">true</item>

<item name="android:windowTranslucentNavigation">true</item>

實現方式二:

代碼中進行設置(推薦)

在setConetntView(View);之前加入下面代碼

//代碼解釋:如果當前版本大于等于4.4,并且當前版本小于5.0,證明是在4.4-5.0之間

if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.KITKAT&&Build.VERSION.SDK_I

?NT<Build.VERSION_CODES.LOLLIPOP){

? ? ? ?? ? ?getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_

? ? ? ? ? ? STATUS);

? ? ? ? ? ? getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_

? ? ? ? ? ? NAVIGGATION);

}

在4.4到5.0之間可能會出現錯位的情況:

解決方式:

1.在ToolBar設置fitsSystemWindows為true

2.在根布局設置fitsSystemWindows為true

3.動態獲取ToolBar高度并設置ToolBar高度

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容