應用主題色擴展到通知欄和不包括通知欄的代碼設置
對比圖:如圖中畫圈圈的部分對比
定義一個應用中所有窗口Activity的基類BaseActivity,在其中onCreate方法中運行以下的方法代碼如下:
@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);
}
}
效果如下: