Android 系统自4.2 开始 UI 上就没多大改变,4.4 也只是增加了透明状态栏与导航栏的功能

这个特性是andorid4.4支持的,最少要api19才可以使用。下面介绍一下使用的方法,非常得简单:

安卓自定义状态栏颜色以与APP风格保持一致
    我们知道IOS上的应用,状态栏的颜色总能与应用标题栏颜色保持一致,用户体验很不错,那安卓是否可以呢?若是在安卓4.4之前,答案是否定的,但在4.4之后,谷歌允许开发者自定义状态栏背景颜色啦,这是个不错的体验!若你手机上安装有最新版的qq,并且你的安卓SDK版本是4.4及以上,你可以看下它的效果:

[java] view plaincopy
  1. public class MainActivity extends Activity {
  2. @Override
  3. protected void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.activity_main);
  6. //透明状态栏
  7. getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  8. //透明导航栏
  9. getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
  10. }
  11. }
[java] view plaincopy
  1. //透明状态栏
  2. getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  3. //透明导航栏
  4. getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

只要加入这两行代码,就可以实现沉浸式通知栏了。效果如图:

给大家看看这个界面的布局:

[html] view plaincopy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="#ffffff"
  6. android:orientation="vertical"
  7. tools:context=".MainActivity">
  8. <TextView
  9. android:layout_width="match_parent"
  10. android:layout_height="100dp"
  11. android:background="#009959" />
  12. <Button
  13. android:layout_width="100dp"
  14. android:layout_height="50dp"
  15. android:background="#ff669d"/>
  16. </LinearLayout>

是一个垂直的流布局,但这样,其实还是有问题的,我在textView里面加一些文字,就是绿色的那一块,大家看一下效果:

大家看到了吧,文字和状态栏重叠在一起了,这肯定是不行的,此时需要添加下面的代码:

[html] view plaincopy
  1. android:fitsSystemWindows="true"
  2. android:clipToPadding="true"
[html] view plaincopy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:fitsSystemWindows="true"
  6. android:clipToPadding="true"
  7. android:background="#ffffff"
  8. android:orientation="vertical"
  9. tools:context=".MainActivity">
  10. <TextView
  11. android:layout_width="match_parent"
  12. android:layout_height="100dp"
  13. android:background="#009959" />
  14. <Button
  15. android:layout_width="100dp"
  16. android:layout_height="50dp"
  17. android:background="#ff669d"/>
  18. </LinearLayout>

大家看红色的那部分,加入那两行以后,界面仍然会是沉浸式的,但状态栏那部分,就不会再重叠了,像加了padding一样,如下图:

大家看图,绿色的textView和红色的一个button都被下移了,状态栏是白色的,是背景linearLayout的颜色。很明显,这也不是我们想要的,我们希望状态栏和我们放在顶部的控件是同一个颜色,同时,控件内容也不和状态栏重复,其实,只要把那两行代码放到我们顶部的控件就可以了。代码如下:

[html] view plaincopy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="#ffffff"
  6. android:orientation="vertical"
  7. tools:context=".MainActivity">
  8. <TextView
  9. android:fitsSystemWindows="true"
  10. android:clipToPadding="true"
  11. android:layout_width="match_parent"
  12. android:layout_height="100dp"
  13. android:background="#009959"
  14. android:text="你好,请问你有男朋友吗"/>
  15. <Button
  16. android:layout_width="100dp"
  17. android:layout_height="50dp"
  18. android:background="#ff669d"/>
  19. </LinearLayout>

就是那两行红色的代码,放在绿色的textView上,这样,就会是下面的效果:

这就是我们想要的了。


Android 沉浸式透明状态栏与导航栏相关推荐

  1. Android 沉浸式(透明)状态栏细研-超级细还附 Demo

    前言 在 Android 4.4 中引入了沉浸模式的功能,但这个版本非真正的沉浸模式,应该说是透明模式.Android 5.0 以后才可以在系统层面实现真正的沉浸式状态栏. 沉浸式状态栏是为了与当前使 ...

  2. Android UI体验之全屏沉浸式透明状态栏效果

    前言: Android 4.4之后谷歌提供了沉浸式全屏体验, 在沉浸式全屏模式下, 状态栏. 虚拟按键动态隐藏, 应用可以使用完整的屏幕空间, 按照 Google 的说法, 给用户一种 身临其境 的体 ...

  3. android滑动背景变透明,Android右滑退出+沉浸式(透明)状态栏

    背景 上篇文章一个千万量级的APP使用的一些第三方库中,在说到一个使用很广泛的滑动退出库SwipeBackLayout时有提过有时间会分享自己在项目中引入这个库的时候填过的一些坑.前段时间项目加入沉浸 ...

  4. Android 显示、隐藏状态栏和导航栏

    Android 显示.隐藏状态栏和导航栏 控制状态栏显示,Activity的主题中配置全屏属性 <item name="android:windowFullscreen"&g ...

  5. Android 4.4之后状态栏和导航栏细节美化(沉浸式状态栏)

    转载请注明出处:http://blog.csdn.net/demokui/article/details/54603284 本篇文章出自:[姜奎的博客] 1. 简介 其实标题我是打算叫"抢眼 ...

  6. Android实现沉浸式(透明)状态栏适配

    第一种讲解: 在Android系统4.4以前,状态栏的背景色和字体颜色都是不能改变的.但是4.4以后Google增加了改变状态栏背景透明的方法,可以通过两种方式来设置. 直接在Activity中设置W ...

  7. 【Android】透明状态栏和导航栏的适配解决方案满足所有机型 kotlin java

    背景 项目想让整个app能够全部融到手机中,所以需要对状态栏和导航栏进行适配 参考 透明状态栏android [Android]状态栏的适配-符合activity活动的主流颜色(附代码) val lp ...

  8. Android沉浸式模式状态栏(二)

    其实说到沉浸式状态栏这个名字,真不知道这种叫法是谁先发起的.因为Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模式(Immersive Mode)这种说法.而有些人在没有完全了解清 ...

  9. Android 加载页 完美隐藏系统状态栏和导航栏 适用刘海屏

    适用版本(因为一些方法被高版本弃用或淘汰,可能效果不太好,以下版本验证可用): android {compileSdkVersion 28buildToolsVersion '28.0.0'defau ...

最新文章

  1. 可视化卷积神经网络的过滤器_万字长文:深度卷积神经网络特征可视化技术(CAM)最新综述...
  2. docker加速器,设置cdn
  3. Android设备的网络抓包
  4. 前端学习(1365):express框架导读
  5. 手机恢复出厂设置命令_擦除数据/恢复出厂设置通过ADB
  6. mybatis-plus忽略映射字段
  7. 并发编程的那些事。(一)
  8. 解构流存储 — Pravega,与 Flink 构建端到端的大数据流水处理线
  9. 最详细的wine配置
  10. 微信小程序“淘淘猜成语”开发教程(该成语接龙已上线,功能齐全)
  11. ImageAI训练自定义数据总结
  12. 【计算机组成原理之存储系统】超级详细
  13. 郑捷《机器学习算法原理与编程实践》学习笔记(第三章 决策树的发展)(一 )_ID3...
  14. webpack工具知多少(上篇)
  15. 五子棋游戏(JavaScript+JQuery+Canvas)
  16. 云监控介绍 - Amazon CloudWatch
  17. 以智汀和小米为例,聊一聊智能网关在智能家居中的应用
  18. 【蓝桥备赛冲刺】2022年第十三届省赛模拟题题解C/C++
  19. 好的网站标志设计之意象运用手法
  20. Power BI——DAX函数(数据分析表达式)

热门文章

  1. Selenium Webdriver概述(转)
  2. linux/Windows系统如何安装PHP-openssl扩展
  3. tomcat各目录(文件)作用
  4. D3DCOLOR与D3DXCOLOR
  5. 测试Windows Live Writer对cnBlog的支持
  6. 【转贴】爱是莲花,最美的是清苦的莲心
  7. Objective-C设计模式(MVC)的实现,以及协议与委托的运用
  8. 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(2):处理异步调用中的异常...
  9. 美素数(HDU 4548)(打表,简化时间复杂度)
  10. 你不得不掌握的thinkphp5