天天看點

關于Android狀态欄一體化

看了很多人寫的狀态欄一體化的文章,過程過于複雜詳細了,之前有看過一篇文章講的很棒,可惜一時類似題目太多竟然找不到了,于是為了自己也為了他人友善,寫一遍自己已經實作并且多次用到項目中的狀态欄一體化方法,其中相信大部分都引入的是Github上的Demo項目https://github.com/niorgai/StatusBarCompat

首先是下載下傳項目位址中的library工程,然後關聯到項目中,并且添加依賴,AS項目添加依賴,從File-New-New Module中添加項目,作為一個mudule,添加後右鍵項目添加Add library依賴。

在eclipse中import 導入library項目,然後點選原項目build依賴項目

這時候就可以直接調用相關的類了,在你的項目BaseActivity基類中添加他的方法,這樣每個內建了BaseActivity的界面都可以實作:

// 設定狀态欄在oncreate方法中

     protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 設定狀态欄

setTranslucentStatus(R.color.main_color);

}

public void setTranslucentStatus(int colorTitler) {

// 判斷是否是4.4及以上版本、

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

Window win = getWindow();

WindowManager.LayoutParams winParams = win.getAttributes();

final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;

winParams.flags |= bits;

win.setAttributes(winParams);

}

SystemBarTintManager tintManager = new SystemBarTintManager(this);

tintManager.setStatusBarTintEnabled(true);

tintManager.setNavigationBarTintEnabled(true);

tintManager.setNavigationBarTintResource(colorTitler);

tintManager.setStatusBarTintResource(colorTitler);

}

這裡需要說明的是,可以改變狀态欄的是基于安卓4.4以上的版本,是以要做權限版本判斷,另外這裡之是以寫成這樣,是友善界面修改狀态欄,雖然大部分界面保持一個主題色,但不代表有個别界面需要修改狀态欄顔色,是以寫成該方法

另外需要注意的是,在資源檔案中,要标明屬性值  android:fitsSystemWindows="true"

所有Activity繼承BaseActivity,很簡單實作狀态欄一體化,不需要寫的那麼複雜

Eclipse需要的library項目下載下傳http://download.csdn.net/detail/wangyetongsss/9783367(Github分離出來的)

繼續閱讀