学习目标:
Android 设置状态栏背景颜色
学习内容:
/**
* 透明状态栏设置
*/
protected void translucentStatusBarConfig() {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(getResources().getColor(getStatusBarColorId()));
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// 设置状态栏透明
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
ViewGroup contentView = (ViewGroup) findViewById(android.R.id.content);
ViewGroup rootView = (ViewGroup) contentView.getChildAt(0);
rootView.setFitsSystemWindows(true);
rootView.setClipToPadding(true);
int statusId = getResources().getIdentifier("status_bar_height", "dimen", "android");
int height = 50;
if (statusId > 0) {
height = getResources().getDimensionPixelSize(statusId);
}
View statusBarView = new View(this);
ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
height);
statusBarView.setBackgroundColor(getResources().getColor(getStatusBarColorId()));
contentView.addView(statusBarView, lp);
}
}
/**
* 状态栏颜色
*
* @return
*/
public int getStatusBarColorId() {
return R.color.color_005bac;
}