设置statusbar的颜色,适用于SDK4.4版本及以上版本
来源:互联网 发布:originlab mac 破解 编辑:程序博客网 时间:2024/06/06 02:33
Android应用,自定义statusbar的颜色
1、效果图:
2、方法:
为了方便调用,你可以将此方法封装在BaseActivity中。
protected void setStatusBarBackground() { int color = Color.BLUE; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { color = getResources().getColor(R.color.colorPrimary, getTheme()); } else { color = getResources().getColor(R.color.colorPrimary); } setStatusBarBackground(color); } /** * <p>设置statusBar的背景颜色。 * <br>在setContentView()方法之后调用。 * <br>SDK4.4以下版本无效。 * @param background */ protected void setStatusBarBackground(int background) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } //设置statusBar的颜色 getWindow().setStatusBarColor(background); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ // 1.设置状态栏透明,经测试在代码里直接声明透明状态栏更有效 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); ViewGroup contentView = (ViewGroup) findViewById(android.R.id.content); View statusBarView = contentView.getChildAt(0); //改变颜色时避免重复添加statusBarView int statusbarHeight = getStatusBarHeight(); if (statusBarView == null || statusBarView.getMeasuredHeight() != statusbarHeight) { statusBarView = new View(this); } statusBarView.setBackgroundColor(background); contentView.addView(statusBarView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusbarHeight)); } }
3、使用:
values文件夹下的styles.xml
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="AppTheme.NoActionBar"/> <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /></resourcs>
values-v19文件夹下的styles.xml
<resources> <style name="AppTheme.NoActionBar"> <item name="android:windowTranslucentStatus">true</item> </style></resources>
values-v21文件夹下的styles.xml
<resources> <style name="AppTheme.NoActionBar"> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@android:color/transparent</item> </style></resources>
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_input_password); setStatusBarBackground(); //do your job }
0 0
- 设置statusbar的颜色,适用于SDK4.4版本及以上版本
- Android SDK4.0.3及以上版本支持intel x86模拟器
- 适用于MyEclipse2014及以上版本的通用破解方法
- 如何隐藏Android4.0及以上版本的ActionBar、NotificationBar、StatusBar、SystemBar、TitleBar
- 如何隐藏Android4.0及以上版本的ActionBar、NotificationBar、StatusBar、SystemBar、TitleBar .
- 如何隐藏Android4.0及以上版本的ActionBar、NotificationBar、StatusBar、SystemBar、TitleBar
- 如何隐藏Android4.0及以上版本的ActionBar、NotificationBar、StatusBar、SystemBar、TitleBar
- 对XML文档进行Schema校验的方法(适用于Framework2.0及以上版本)
- 设置statusBar的颜色
- Matlab2016及以上版本设置VS编译器
- Android 设置StatusBar的颜色
- 设置UIImagePickerController的statusBar颜色
- MTK 10A版本及以上版本的编译配置
- Cocos2d-x 3.3版本及以上版本CCPointZero的改变
- Eclipse4.4及以上版本安装FatJar
- Windows7及Windows7以上版本设置豆沙绿
- 如何更改tomcat7及以上版本内存设置
- Mysql 5.7.9以上版本 设置账户密码及授权
- Kryo框架的获取、基本应用例子
- 25个经典的Spring面试问答
- java中关于File和io 的个人小结
- 基于PHP开发的外卖订餐网站(带源码)
- 快速排序
- 设置statusbar的颜色,适用于SDK4.4版本及以上版本
- 九度OJ 1078 二叉树遍历(已知前中序求后序)
- 【数据库】MySqlBulkLoader——批量导入
- 蓝桥杯 —— P1001 —— 大数相乘
- SAP HANA SQL字符串连接操作
- Oracle查询常用SQL
- 平常水题
- Linux命令大全(十)--
- linux下安装nginx