Android设置通知栏/状态栏透明改变通知栏颜色和app最上部分颜色一样
16lz
2021-12-04
Android设置通知栏/状态栏透明改变通知栏颜色和app最上部分颜色一样
方法(一):沉浸式状态栏
@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);//初始化窗口为无标题栏的 if (getLayout() != 0) { setContentView(getLayout()); } // 沉浸式通知栏,通知栏不会变成透明 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } //隐藏导航栏 ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.hide(); }}
效果:在通知栏的上方透明化,但是未与最上面的部分颜色完全一致
方法(二):使通知栏和导航栏都完全透明化
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);//初始化窗口为无标题栏的 if (getLayout() != 0) { setContentView(getLayout()); } //设置状态栏和导航栏颜色为透明 if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); //设置导航栏颜色为透明 getWindow().setNavigationBarColor(Color.TRANSPARENT); //设置通知栏颜色为透明 getWindow().setStatusBarColor(Color.TRANSPARENT); } //隐藏导航栏 ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.hide(); } }
效果:可以使得状态栏颜色和app最上边的部分颜色一致
总结:以上就是分享的两种设置状态栏颜色的方法了,设置状态栏颜色是否为透明和沉浸式状态栏,可以根据自己的业务需求进行设置
更多相关文章
- android图表ichartjs
- Android(安卓)闹钟管理类的使用
- Android(安卓)组件资源库
- 设置系统的语言
- android 开机直接运行app并当做手机桌面
- Android(安卓)EditView
- Android(安卓)EditText 设置行距不影响光标高度
- Android(安卓)Settings
- Hello Android(安卓)- android窗体透明的,黑暗度等的设置技巧