Android 4.4及以后将内容布局延伸到状态栏-阿里云开发者社区

开发者社区> ling9400> 正文

Android 4.4及以后将内容布局延伸到状态栏

简介: 【该文章同步发布到CSDN:http://blog.csdn.net/ling9400/article/details/59478358   转载请注明出处:http://www.
+关注继续查看

【该文章同步发布到CSDN:http://blog.csdn.net/ling9400/article/details/59478358

  转载请注明出处:http://www.jianshu.com/p/3e73c372b7ce

首先说明:该文章不是大家说的沉浸式状态栏,网上沉浸式状态栏的博客很多,搜索就有了!

该篇博客的主要目的就是为了将图片显示在状态栏上,让APP看起来更有型!如下图所示:


界面

这个界面的布局就是coordinatorLayout + CollapsingToolbarLayout实现的效果,将背景图片显示在状态栏上是不是显得更有逼格呢!至少博主看到还是觉得不错的,虽然第三方沉浸式状态栏的框架也能实现,但个人觉得还是有必要将这篇文章写下来(PS:博主用第三代的沉浸式框架实现好像主要用于修改状态栏的颜色,至于图片就没有做过了)。

其实,实现这种效果的原理还是透明状态栏,

透明状态栏

话不多说——show me the code。

一般情况下,需要创建vaules、values-v19以及values-v21三个文件夹,里面存放着三个版本下的styles文件,在19和21的主题文件下加上上面的item即可,同时切记Activity中的布局中不需要 添加android:fitsSystemWindows="true",不然不能实现效果。

最后21文件下需要添加statusBarColor为透明颜色的item,

v21文件

设置好以上步骤之后你可以直接运行项目,会发现以下的情况:


布局上移

哈哈,哈哈。。。。      这是为什么呢?就是前面说的android:fitsSystemWindows="true"的问题,没在根局部加就会出现这样的问题,BUT,加上又不能实现效果,这该如何是好呢?

其实,加上android:fitsSystemWindows="true"这句话之后布局文件就会自动在状态栏下开始布局,而不加这句并且在4.4以后加上透明状态栏之后你的activity的布局就会从整个手机屏幕顶端开始布局,而不是从状态栏之后。所以,加上透明状态栏之后说明你的布局被上移了,然后就需要手动来测量状态栏的高度,并且给toolBar(我这里的布局,你的布局不确定哦)设置margin了。

设置margin

      同时,需要知道透明状态栏是4.4之后才能设置的,小于4.4的手机是不识别的,顾它还是直接从状态栏以后开始布局的,所以必须判断手机的版本,不然的话小于4.4的手机会出现对顶部有一个margin,这是我们不愿意看到的。

最后就实现了这种效果了—— 将布局中的图片延伸到状态栏,实现高逼格应用!

该篇博客只是突然的想法随笔,如有错误,请指出,谢谢!不明白的可以交流。。。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
在open状态下恢复未备份的数据文件
        此文讲述如何恢复未备份的数据文件,在归档日志模式,如果dba增加了新的数据文件,当没有备份新的数据文件,那么该文件出现损坏时,可以恢复该数据文件。前提是 从建立新的数据文件到丢失为止的所有归档日志必须全部存在。
566 0
Android开发学习之使用Toolbar实现不同的Fragment使用不同颜色的标题栏与状态栏
Android开发学习之使用Toolbar实现不同的Fragment使用不同颜色的标题栏与状态栏                                            先看效果图。
2296 0
Android ToggleButton:状态切换的Button
 Android ToggleButton:状态切换的Button Android ToggleButton和Android Button类似,但是ToggleButton提供了一种选择机制,可以表达Button处于何种状态,比如常见的WiFi打开或者关闭状态等等这种类似与非门的状态机。
658 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
8404 0
Android手写状态切换布局
实现状态切换布局 image 效果图 image 原理 继承RelativeLayout,然后向其中添加各种状态的View,通过对各种View的显示隐藏的切换来实现各种状态的切换。
914 0
android(cm11)状态栏源码分析(一)
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/50216563 (一):写在前面 最近由于工作需要,需要了解CM11中的有关于StatusBar相关的内容。
949 0
《Android游戏开发详解》一2.12 设置和访问对象的状态
现在,我们可以访问一个Phone对象了。myPhone表示使用Phone类(class)创建的一个单个的Phone对象(object)。它是一个独立的实体,独立于我们将来可能使用蓝图(Phone类)创建的任何其他Phone对象。我们使用实例(instance)这个术语来描述这种现象。
1029 0
iphone获取屏幕尺寸以及状态栏
获取状态栏的尺寸 CGRect rect; rect=[[UIApplication sharedApplication]statusBarFrame]; 获取屏幕尺寸 CGRect rect; rect=[[UIScreen mainScreen]bounds]; CGSize size=rect.
458 0
Android屏幕适配之状态栏导航栏半透明、全透明(5.0以上去阴影),方法多样
1.1 StatusBar半透明用StatusBarView实现(4.4以上有效) 1.2 StatusBar半透明用setStatusBarColor实现(5.0以上有效) 2.1 StatusBar全透明用fitSystemWindows实现(4.
3923 0
+关注
10
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载