Android4.4 5.0沉浸式状态栏
16lz
2021-01-23
5.0以上效果如下:
/** * 安卓5.0以上版本设置状态栏颜色配合如下两条属性使用 * android:clipToPadding="true" * android:fitsSystemWindows="true" * @param activity */ public static void setLopStatBar(Activity activity, int color) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = activity.getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(activity.getResources().getColor(color));// window.setNavigationBarColor(Color.TRANSPARENT); } } /** * 状态栏半透明 4.4 以上有效配合如下两条属性使用 * android:clipToPadding="true" * android:fitsSystemWindows="true" * * @param activity */ public static void initSystemBar(Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(activity, true); } SystemBarTintManager tintManager = new SystemBarTintManager(activity); tintManager.setStatusBarTintEnabled(true); // 使用颜色资源 tintManager.setStatusBarTintResource(R.color.blue); } @TargetApi(19) private static void setTranslucentStatus(Activity activity, boolean on) { Window win = activity.getWindow(); WindowManager.LayoutParams winParams = win.getAttributes(); final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; if (on) { winParams.flags |= bits; } else { winParams.flags &= ~bits; } win.setAttributes(winParams); }
在Activity的onCreate方法中调用即可
更多相关文章
- android 使用反射机制获取工程中的图片
- Android属性动画优化
- 设置图片缩放方法失效 解决办法设置android:scaleType属性
- Android改变图片颜色的自定义控件(十)
- android 修改图片的颜色
- android实现图片圆角化实现三种方法