應用主題色擴展到通知欄和不包括通知欄的代碼設置

應用主題色擴展到通知欄和不包括通知欄的代碼設置


對比圖:如圖中畫圈圈的部分對比

定義一個應用中所有窗口Activity的基類BaseActivity,在其中onCreate方法中運行以下的方法

代碼如下:


// TODO:適配4.4<=sdk<5.0
@TargetApi(Build.VERSION_CODES.KITKAT)
protected void setStatusBarTranslucent() {
    if ((Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
            &&(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
            &&!(this instanceof SplashActivity)) {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        SystemBarTintManager tintManager = new SystemBarTintManager(this);
        tintManager.setStatusBarTintEnabled(true);
        tintManager.setStatusBarTintResource(R.color.background_main);
    }

}


效果如下:



自己練手的例子:
導入依賴:compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'(必要要用到這個東東才能才設置下面的SystemBarTintManager)


public class BaseActvity extends AppCompatActivity{
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setStatusBarTranslucent();
    }
    private void setStatusBarTranslucent(){
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        SystemBarTintManager tintManager = new SystemBarTintManager(this);
        tintManager.setStatusBarTintEnabled(true);
        tintManager.setStatusBarTintResource(R.color.background_main);
        setContentView(R.layout.activity_main);
    }
}


public class MainActivity extends BaseActvity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}


效果如下:


發佈了74 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章