重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
不管是继承AppCompatActivity还是Activity都适用:
创新互联建站是一家专业提供化隆企业网站建设,专注与成都网站制作、成都网站设计、H5页面制作、小程序制作等业务。10年已为化隆众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
在style.xml定义
在AndroidManifest.xml里面设置下theme属性:
1.在style.xml定义
2.在AndroidManifest.xml里面设置下theme属性
先看一下默认的情况:
蓝色一行是自定义的导航栏,
黑色的是自带的 ActionBar ,也就是我们说的标题栏。
首先一般都会选择去掉 ActionBar:
隐藏 actionbar 有很多种方法
这种方法是全局中隐藏了标题栏。
其实在我的手机更新系统之前,隐藏了 ActionBar 后,状态栏和自定义的导航栏颜色是相匹配的,不知道什么原因现在默认为灰色了。
上面使用的主题虽然隐藏了标题栏,但是和我们自定义的导航栏不搭,
这时候我们可以选择用自定义的主题(Theme),来改变状态栏:
在 values 下的 style.xml 中添加
或者在 onCreate 中:
上面两行一般不一起设置,二选一即可。
第一行设置导航栏为透明,第二行将导航栏隐藏。
不推荐第二种做法,如果一个 Activity 中设置了隐藏导航栏而另一个 Activity 没有,那两者切换的时候会不好看。
融合的效果:
状态栏和 app 顶部相融合了,如果标题栏是一张图片效果会更好。
这里还有一个问题,状态栏的文字和我们导航栏的文字重叠了,
我们可以选择在布局文件的根元素中添加:
让布局为状态栏留出空间,就不会出现上面这张被状态栏遮挡的情况。
如果像上面的例子是一样的纯色的标题栏,我们可以选择直接改变状态栏的颜色解决问题。
或者:
不显示时间、电量等信息和文字:
同要可以用修改 Theme 来实现:
或者在 OnCreat() 中加入,还是要注意加在 setContentView() 的前面
如果想让图片全屏要注意设置为:
Android4.4以后, 可以将状态栏设置为透明, 或者任意颜色
1. 全屏模式
2. 着色模式
在Android4.4之后提供了可以修改状态栏的属性接口后,我们可以直接通过style文件来配置状态栏, 但是需要注意的是, 为了兼容4.4以下的版本, 所以必须在配置多个API级别的values文件. 这里直接借参考文章中的图:
最基本的在4.4版本之下会加载默认的values/styles.xml, 如果在4.4版本会加载 values-v19/styles.xml, 5.0以上加载 values-v21/styles.xml文件. 具体配置如下:
values/styles.xml
style name="ImageTranslucentTheme" parent="AppTheme"
!--在Android 4.4之前的版本上运行,直接跟随系统主题--/style123
values-v19/styles.xml
style name="ImageTranslucentTheme" parent="Theme.AppCompat.Light.DarkActionBar"
item name="android:windowTranslucentStatus"true/item
item name="android:windowTranslucentNavigation"true/item
/style1234
values-v21/styles.xml
style name="ImageTranslucentTheme" parent="Theme.AppCompat.Light.DarkActionBar"
item name="android:windowTranslucentStatus"false/item
item name="android:windowTranslucentNavigation"true/item
!--Android 5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色--
item name="android:statusBarColor"@android:color/transparent/item
/style