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

该篇博客的主要目的就是为了将图片显示在状态栏上,让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,这是我们不愿意看到的。

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

Android 4.4及以后将内容布局延伸到状态栏的更多相关文章

  1. 【Android UI】Android开发之View的几种布局方式及实践

    引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理 ...

  2. 三、Android学习第三天——Activity的布局初步介绍(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 三.Android学习第三天——Activity的布局初步介绍 今天总结下 ...

  3. Android四大组件之Activity(活动)及其布局的创建与加载布局

    Android四大组件之Activity(活动)及其布局的创建与加载布局 什么是Activity ? 活动(Activity)是包含用户界面的组件,主要用于和用户进行交互的,一个应用程序中可以包含零个 ...

  4. Android 开发:view的几种布局方式及实践

    View的几种布局显示方法,以后就不会在针对布局方面做过多的介绍.View的布局显示方式有下面几种:线性布局(Linear Layout).相对布局(Relative Layout).表格布局(Tab ...

  5. Android 控件 -------- AutoCompleteTextView 动态匹配内容,例如 百度搜索提示下拉列表功能

    AutoCompleteTextView 支持基本的自动完成功能,适用在各种搜索功能中,并且可以根据自己的需求设置他的默认显示数据.两个控件都可以很灵活的预置匹配的那些数据,并且可以设置输入多少值时开 ...

  6. Android开发:View的几种布局及实践

    引言 View的布局显示方式有下面几种:线性布局(Linear Layout).相对布局(Relative Layout).表格布局(Table Layout).网格视图(Grid View).标签布 ...

  7. Android学习之基础知识十—内容提供器(Content Provider)

    一.跨程序共享数据——内容提供器简介 内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能 ...

  8. 【Android应用开发技术:用户界面】布局管理器

    作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells Github:https://github.co ...

  9. Android基础笔记(十三)- 内容提供者原理和简单使用

    为什么要有内容提供者 内容提供者的工作原理 使用内容解析者对内容提供者进行增删改查操作 利用内容提供者和内容解析者备份手机短信 利用内容提供者插入短信 为什么要有内容提供者 内容提供者技术的目的是: ...

随机推荐

  1. vijos:P1053Easy sssp(spfa判环)

    描述 输入数据给出一个有N(2 <= N <= 1,000)个节点,M(M <= 100,000)条边的带权有向图. 要求你写一个程序, 判断这个有向图中是否存在负权回路. 如果从一 ...

  2. win7 64位搭建Mantis 缺陷管理系统(2)

    建立Bug数据库 1. 右键Windows托盘的图标,选择“Local Web”,(或者在IE地址中输入“http://127.0.0.1/”)可看到如下页面: 2. 点击选择“mantis”,进入页 ...

  3. thinkpad取消fn键功能

    转自:https://bbs.thinkpad.com/thread-1834235-1-1.html 1就是一直觉得fn建自动开启很烦人,于是百度后得到 我们可以 控制面板 -- 键盘--think ...

  4. JavaScript高级程序设计学习笔记第九章--客户端检测

    1.能力检测:能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力.(我的理解就是识别浏览器能做什么不能做什么) 2.怪癖检测:目标是识别浏览器的特殊行为.但与能力检测确认浏览器支持什么能力不同, ...

  5. 交互原型设计软件axure rp学习之路(一)

    开始学习之前,请一定要明白:Axure是个极其极其极其简单的软件.因为你所做的就是拖部件,打字,拖部件,打字,最多加个对齐.如果你能把axure当作word或者ppt来用,那你就学会了axure. A ...

  6. 计总与排名SUM和RANK函数

    准备一些数据: CREATE TABLE [dbo].[SalesPerformance]( ,) NOT NULL, ) NOT NULL, [OrderDate] [DATE] NULL, ,) ...

  7. display:block inline-block inlined的区别

    一.首先要了解什么是块级元素与行级元素 块级元素 会占领页面的一行,其后多个block元素自动换行. 可以设置width,height,设置了width后同样也占领一行.同样也可以设置   margi ...

  8. gulp --watch直接退出,并没有监听

    1.在es6(彩票项目)搭建环境时遇到gulp --watch 只运行一次就退出了不能监听: D:\nodejs\es6-base>gulp --watch [::] Failed to loa ...

  9. 洛谷P2513 [HAOI2009]逆序对数列

    P2513 [HAOI2009]逆序对数列 题目描述 对于一个数列{ai},如果有i<j且ai>aj,那么我们称ai与aj为一对逆序对数.若对于任意一个由1~n自然数组成的数列,可以很容易 ...

  10. [Xcode 实际操作]六、媒体与动画-(9)使用CATransaction Push制作入场动画

    目录:[Swift]Xcode实际操作 本文将演示如何制作入场动画. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class View ...