前言
在android開發(fā)的過程中儡蔓,經(jīng)常會涉及到沉浸式狀態(tài)欄的問題,說白了劝赔,就是手機屏幕頂部欄的顏色顯示問題,為了實現(xiàn)美感一體的效果胆敞,許多app都已經(jīng)開始了沉浸式狀態(tài)欄的顯示着帽,這里,我也簡單介紹一個沉浸式狀態(tài)欄的類StatusBarUtil移层,這個類使用簡單并很好的解決了兼容問題仍翰。
今天涉及的內(nèi)容有:
- StatusBarUtil 的使用,當中包含效果圖
- StatusBarUtil源碼
一. StatusBarUtil 的使用
一般在未實現(xiàn)沉浸式狀態(tài)欄的時候观话,(為了方便展示予借,我將activity背景設置成粉紅色)狀態(tài)欄是這樣的:
1.1 設置狀態(tài)欄背景透明
//設置狀態(tài)欄背景透明
StatusBarUtil.immersive(mContext);
效果圖如下:
1.2 給狀態(tài)欄設置特定顏色
這里將狀態(tài)欄設置成紅色
//設置狀態(tài)欄背景紅色
StatusBarUtil.immersive(mContext, ContextCompat.getColor(mContext,R.color.red));
效果圖
1.3 設置狀態(tài)欄背景色的透明度
這里將狀態(tài)欄背景設置成紅色,透明度設置成半透明(注:透明度的值在0-1之間),設置代碼如下:
//設置狀態(tài)欄背景半透明紅
StatusBarUtil.immersive(mContext, ContextCompat.getColor(mContext,R.color.red),0.5f);
效果圖
除了可以設置狀態(tài)欄的背景色外灵迫,StatusBarUtil 還可以設置狀態(tài)欄文字的顏色秦叛,目前狀態(tài)欄文字顏色只支持兩種:白色和黑色
1.4 設置狀態(tài)欄黑色字體
設置狀態(tài)欄黑色字體有兩種方法
//設置狀態(tài)欄文字變黑
//方法一
StatusBarUtil.darkMode(mContext);
//方法二
StatusBarUtil.darkMode(mContext,true);
效果圖
1.5 設置狀態(tài)欄白色字體
//設置狀態(tài)欄文字變白
StatusBarUtil.darkMode(mContext,false);
效果圖
1.6 綜合設置狀態(tài)欄屬性
若你想設置狀態(tài)欄文字為黑色的同時,還能設置狀態(tài)欄背景色及其透明度瀑粥,你可以調(diào)用以下方法(以背景色藍色半透明為例):
//設置狀態(tài)欄字體變黑挣跋,設置狀態(tài)欄背景色和狀態(tài)欄背景色的透明度
StatusBarUtil.darkMode(mContext, ContextCompat.getColor(this,R.color.blue),0.5f);
效果圖
二. StatusBarUtil 源碼
下面貼出 StatusBarUtil 實現(xiàn)代碼: