看了很多人寫的狀态欄一體化的文章,過程過于複雜詳細了,之前有看過一篇文章講的很棒,可惜一時類似題目太多竟然找不到了,于是為了自己也為了他人友善,寫一遍自己已經實作并且多次用到項目中的狀态欄一體化方法,其中相信大部分都引入的是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分離出來的)