设置 状态栏透明,只支持4.4及以上版本。
/**
* 设置状态栏颜色
*/
public static void setStatusBarColor(Activity activity) {
try {
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// activity.getWindow().setStatusBarColor(Color.argb(0,0,0,0));
// }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// 生成一个状态栏大小的矩形
View statusBarView = new View(activity);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
getStatusBarHeight(activity));
statusBarView.setLayoutParams(params);
statusBarView.setBackgroundColor(Color.argb(0,0,0,0));
// 添加 statusView 到布局中
ViewGroup decorView = (ViewGroup)activity.getWindow().getDecorView();
decorView.addView(statusBarView);
}
} catch (Exception e) {
e.printStackTrace();
LogUtil.e("zhouhao","设置状态栏透明异常,方法名:setStatusBarColor");
}
}
/**
* 获取手机状态栏高度
* @param activity
* @return
*/
public static int getStatusBarHeight(Activity activity){
int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android");
int statusHeight = activity.getResources().getDimensionPixelSize(resourceId);
return statusHeight;
}
具体调用:在Activity的onCreate方法里调用setStatusBarColor即可。
提示:注释的地方打开之后6.0的手机透明不了。