Android中关于状态栏的一些知识点
来源:互联网 发布:牛播最新直播室源码 编辑:程序博客网 时间:2024/06/01 09:16
开篇:
最近在独立的开发中遇到了Android状态栏的很多坑,在网上查了些资料也是众说纷纭,因此总结了一些网上的关于状态栏的知识点,用于在以后的开发中少踩些坑;
1. 不显示状态栏
不显示状态栏一般用于对屏幕空间要求较大时,比如欢迎界面,视频,横屏等;
不显示状态栏的方式有两种:
第一种方法:
在活动中中添加:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
第二种方法:
(Android5.0及以上的系统才支持)
if(Build.VERSION.SDK_INT >= 21){ View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); getWindow().setStatusBarColor(Color.TRANSPARENT);}setContentView(R.layout.activity_main);...
2. 设置状态栏为透明
第一种方法:
(Android4.4及以上的系统才支持)
在Style文件中添加代码:
<item name="android:windowTranslucentStatus">true</item>由于是4.4版本才开始支持,因此需要做区分版本号处理:
第二种方法:
通过代码来指定:
public static void setStatusBarTransparent(Activity activity) { Window window = activity.getWindow(); if (window != null) { WindowManager.LayoutParams winParams = window.getAttributes(); final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; winParams.flags |= bits; window.setAttributes(winParams); } }
3. 使用fitsSystemWindow属性:
android:fitsSystemWindows属性可以让设置的布局跳过系统状态栏的高度;
使用: 在根布局中配置xml属性:
android:fitsSystemWindows="true"
4. 设置状态栏颜色
在状态栏不透明情况下,改变状态栏的颜色;
(Android5.0及以上版本)
在style文件中设置颜色:(使用colorPrimaryDark属性改变颜色)
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@android:color/holo_green_light</item> <item name="colorAccent">@color/colorAccent</item> </style>使用该方法设置状态栏颜色,是改变系统默认的颜色,可能导致其他布局的颜色的改变,慎用;
使用代码动态设置:
public static void setStatusBarColor(Activity activity, int colorId) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = activity.getWindow(); if (window != null) { window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(activity.getResources().getColor(colorId)); } } }
阅读全文
1 0
- Android中关于状态栏的一些知识点
- android 中 Notification 关于状态栏的一些操作
- 关于Android状态栏的一些问题
- 写一些关于Android的知识点记录
- android 积累一些关于rxjava的知识点
- qt中关于xml的一些知识点
- 关于状态栏的一些问题
- Android学习中一些零散的知识点
- Android中一些小的知识点
- android开发中关于PendingIntent的知识点
- Android的一些知识点
- 关于VxWorks的一些知识点
- 关于对话框的一些知识点
- 关于Event的一些知识点
- 关于tomcat的一些知识点
- 关于指针的一些知识点
- 关于plsql的一些知识点
- 关于css的一些知识点
- 关于APP接收开机广播延迟问题的
- 网络模型解析
- final、finally、finalize的区别
- IOS 发送HTTP请求报错
- 多校7 HDU-6127 Hard challenge 几何数学,枚举极角
- Android中关于状态栏的一些知识点
- hdu 6127 Hard challenge (计算几何——斜率排序)
- Java 工厂模式
- 算法学习之旅,初级篇(22)--循环队列
- POJ
- Java 抽象工厂模式
- UOJ69 新年的QAQ
- HihoCoder.1195 高斯消元·一 (高斯消元 浮点类型)
- 有关oracle的杂记