状态栏颜色设置:
private View mStatusBarView;
/** * 设置状态栏 */
private void setBarView() {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
final int sdk = Build.VERSION.SDK_INT;
Window window = getWindow();
WindowManager.LayoutParams params = window.getAttributes();
if (sdk >= Build.VERSION_CODES.KITKAT) {
int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
// 设置透明状态栏
if ((params.flags & bits) == 0) {
params.flags |= bits;
window.setAttributes(params);
} // 设置状态栏颜色
ViewGroup contentLayout = (ViewGroup) findViewById(android.R.id.content);
setupStatusBarView(contentLayout, getResources().getColor(R.color.color_primary));
// 设置Activity layout的fitsSystemWindows
View contentChild = contentLayout.getChildAt(0);
contentChild.setFitsSystemWindows(true);
}}
private void setupStatusBarView(ViewGroup contentLayout, int color) {
if (mStatusBarView == null) {
View statusBarView = new View(this);
ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
Utils.getStatusBarHeight(this));
contentLayout.addView(statusBarView, lp);
mStatusBarView = statusBarView;
}
mStatusBarView.setBackgroundColor(color);
}