目录

  • 1.前言
  • 2.自定义主题theme
  • 3.全透明沉浸式主题theme
  • 4.设置状态栏颜色(Android 5.0+)
  • 5.设置状态栏半透明
  • 6.设置状态栏全透明
  • 7.设置底部导航栏半透明
  • 8.全透明沉浸式主题样式
  • 9.半透明沉浸式主题样式
  • 10.总结

1.前言

      本章介绍实现Android沉浸式主题样式,从状态栏设置单一颜色,半透明、全透明、底部导航栏半透明等方面实践截图完成沉浸效果。

        下一章介绍隐藏底部导航栏,传送门链接:

        (AS笔记)Android全透明沉浸式主题样式——全屏沉浸隐藏底部导航栏

          CSDN链接:https://blog.csdn.net/qq_39038178/article/details/119661162


2.自定义主题theme

<style name="主题名称" parent="主题样式风格">
<style name="Theme1" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<style name="Theme2" parent="Theme.AppCompat.Light.Dialog">
<style name="Theme3" parent="Theme.AppCompat.Light.NoActionBar">
<style name="Theme4" parent="Theme.AppCompat.DayNight.NoActionBar">
<style name="主题名称..." parent="主题样式风格...">

说明:在AndroidManifest.xml配置清单中<application>标签调用自定义主题名称x,表示当前App应用默认全局使用都该自定义主题名称x。如:<application android:theme="@style/主题名称x"......</application>

        AndroidManifest.xml调用自定义主题“TranslucentTheme”,作用于全局使用该主题


3.全透明沉浸式主题theme,

        主题样式使用:“Theme.AppCompat.Light.NoActionBar”

<!-- 全透明 沉浸式 parent 主题样式 -->
<!-- <style name="主题名称" parent="Theme.AppCompat.Light.NoActionBar"> -->
<!--    ... -->
<!--    ... -->
<!-- </style> --><!-- 全透明 沉浸式主题样式 -->
<style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style>

        使用“Theme.AppCompat.Light.NoActionBar”,效果如下:

说明:以上效果图是没有“设置状态栏颜色”属性时,状态栏默认浅灰色。


4.设置状态栏颜色(Android 5.0+)

        颜色定义:系统预设颜色/自定义颜色

        属性“android:statusBarColor”设置状态栏,刚才也说过,不设置状态栏属性默认浅灰色

<!-- tools:targetApi="l"表示:Android 5.0——Lollipop(棒棒糖)-->
<!-- Android 5.0 以上支持 setStatusBarColor() 设置状态栏颜色 -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- 状态栏设置自定义颜色 -->
<item name="android:statusBarColor" tools:targetApi="l">自定义颜色</item>
<!-- 状态栏设置系统预设颜色 -->
<item name="android:statusBarColor" tools:targetApi="l">系统预设颜色</item>

        设置状态栏为绿色:其它颜色此处不展示——绿绿更健康

<!-- 全透明 沉浸式 parent 主题样式 -->
<!-- <style name="主题名称" parent="Theme.AppCompat.Light.NoActionBar"> -->
<!--    ... -->
<!--    ... -->
<!-- </style> --><!-- 全透明 沉浸式主题样式 -->
<style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- 设置状态栏为绿色 --><item name="android:statusBarColor" tools:targetApi="l">#4CAF50</item>
</style>

说明:显然设置单一颜色不适合沉浸式主题样式。期待解决不?咱们继续搞~!~!~!此处设置绿色,主要是了解有这样的用法。


5.设置状态栏半透明

<!-- 全透明 沉浸式 parent 主题样式 -->
<!-- <style name="主题名称" parent="Theme.AppCompat.Light.NoActionBar"> -->
<!--    ... -->
<!--    ... -->
<!-- </style> --><!-- 全透明 沉浸式主题样式 -->
<style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- 设置状态栏为绿色——已注释 --><!-- <item name="android:statusBarColor" tools:targetApi="l">#4CAF50</item> --><!-- 设置状态栏半透明 --><item name="android:windowTranslucentStatus">true</item>
</style>

说明:设置状态栏半透明之后,可以隐约看见状态栏后面全屏填充的背景图片,但是,通常情况下,实现沉浸式主题风格,是不希望状态有颜色出现。显然,半透明也同样不适合,此处设置主要是了解有这样的用法,咱们继续搞~!~!~!


6.设置底部导航栏半透明

<!-- 全透明 沉浸式 parent 主题样式 -->
<!-- <style name="主题名称" parent="Theme.AppCompat.Light.NoActionBar"> -->
<!--    ... -->
<!--    ... -->
<!-- </style> --><!-- 全透明 沉浸式主题样式 -->
<style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- 设置状态栏为绿色——已注释--><!-- <item name="android:statusBarColor" tools:targetApi="l">#4CAF50</item> --><!-- 设置状态栏半透明——已注释 --><!-- <item name="android:windowTranslucentStatus">true</item> --><!-- 设置底部导航栏半透明,默认false黑色,设置true半透明 --><item name="android:windowTranslucentNavigation">true</item>
</style>


7.设置状态栏全透明

        设置绿色,显然不符合沉浸式主题,颜色属性:@android:color/transparent

<!-- 全透明 沉浸式 parent 主题样式 -->
<!-- <style name="主题名称" parent="Theme.AppCompat.Light.NoActionBar"> -->
<!--    ... -->
<!--    ... -->
<!-- </style> --><!-- 全透明 沉浸式主题样式 -->
<style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- 设置状态栏为绿色——已注释--><!-- <item name="android:statusBarColor" tools:targetApi="l">#4CAF50</item> --><!-- 设置状态栏半透明——已注释 --><!-- <item name="android:windowTranslucentStatus">true</item> --><!-- 设置底部导航栏半透明,默认false黑色,设置true半透明 --><item name="android:windowTranslucentNavigation">true</item><!-- Android 5.0+,设置状态栏全透明透明 --><item name="android:statusBarColor" tools:targetApi="l">@android:color/transparent</item></style>

说明:状态栏全透明——状态栏作用区域,实现透明覆盖。由图可见,半透明状态可见的背景图,此时同样已被进行透明化,有部分图片看不见了。继续解决~!~!~!


8.全透明沉浸式主题样式

        重点来了:实现沉浸式主题分析点——结合4节、5节、6节的步骤

  • (1)状态栏半透明设置为false,不设置此项也可以,默认就是false,但是规范原因,这项建议添加到自定义主题中。
  • (2)状态栏全透明是必须参数,不然状态半透明无论是false还是true,顶部状态栏始终是有颜色遮挡住的
  • (3)底部导航栏半透明设置true,默认fasle是黑色。

        总结:设置以后3点,这样让人体验使用App应用时,有种很宽敞的感觉,觉得自己手机屏幕尺寸很大,很牛逼~!~!~!

<!-- 全透明 沉浸式 parent 主题样式 -->
<!-- <style name="主题名称" parent="Theme.AppCompat.Light.NoActionBar"> -->
<!--    ... -->
<!--    ... -->
<!-- </style> --><!-- 全透明 沉浸式主题样式 -->
<style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- 设置状态栏为绿色——已注释--><!-- <item name="android:statusBarColor" tools:targetApi="l">#4CAF50</item> --><!-- 设置状态栏半透明——解除注释 --><item name="android:windowTranslucentStatus">false</item><!-- 设置底部导航栏半透明,默认false黑色,设置true半透明 --><item name="android:windowTranslucentNavigation">true</item><!-- Android 5.0+,设置状态栏全透明透明 --><item name="android:statusBarColor" tools:targetApi="l">@android:color/transparent</item></style>

       个人理解: 状态栏沉浸=状态栏半透明false+开启状态栏全透明+底部导航栏true


9.半透明沉浸式主题样式

<!-- 半透明 沉浸式主题样式 -->
<style name="TranslucentTheme1" parent="Theme.AppCompat.Light.NoActionBar"><!--半透明状态栏--><item name="android:windowTranslucentStatus">true</item><!--半透明导航栏--><item name="android:windowTranslucentNavigation">true</item>
</style>

说明:至此,顶部状态栏实现了全透明沉浸式,但仔细发现,底部导航栏还存在呢。难不成false黑色?true半透明?当然要把底部导航栏隐藏了,才是真正的沉浸式主题风格,全屏沉浸隐藏底部导航栏教程,传送门链接: 

        (AS笔记)Android全透明沉浸式主题样式——全屏沉浸隐藏底部导航栏

          CSDN链接:https://blog.csdn.net/qq_39038178/article/details/119661162


10.总结

仅自己学习记录,如有错误,敬请谅解~,谢谢~~~

(AS笔记)Android全透明沉浸式主题样式——顶部状态栏+底部导航栏相关推荐

  1. (AS笔记)Android全透明沉浸式主题样式——代码篇

    目录 1.前言 2.Android当前SDK版本号 > API 19-Android 4.4 3.Android当前SDK版本号 > API 21-Android 5.0 4.扩展知识点 ...

  2. (AS笔记)Android全透明沉浸式主题样式——全屏沉浸隐藏底部导航栏

           上一章介绍了,Android全透明沉浸式主题样式--顶部状态栏+底部导航栏,教程传送门链接:         (AS笔记)Android全透明沉浸式主题样式--顶部状态栏+底部导航栏   ...

  3. (AS笔记)Android全透明沉浸式主题样式——工具类篇

    重要须知:工具类中形式参数带有:" int color " 设置颜色参数,在Activity调用时,请使用" ContextCompat.getColor(this, R ...

  4. 2022-10-13 Android APP 全屏幕显示全透明沉浸式主题android:theme样式 Theme.TranslucentTheme

    一.android8真机上运行默认的app主题是这样的,有titile,状态栏不透明. 二.我想改成全透明沉浸式主题样式. 1.res/values/themes.xml 文件添加Translucen ...

  5. android沉浸式模式简书,Android 沉浸式模式与常见状态栏和导航栏效果

    Android沉浸式模式 官方称沉浸式状态栏为沉浸式模式. 什么是沉浸式? 沉浸式就是让人专注当前的(由设计者营造)情境下感到愉悦和满足,而忘记真实的情境. 什么是Android中的沉浸式? 当启用该 ...

  6. Android全屏沉浸式应用

    原文出处:http://bbs.itheima.com/thread-298355-1-1.html?zztj3?rss 一.概念 首先让我们看一下默认状态栏的显示效果 以下以微信与qq为例: 由于A ...

  7. 固定导航栏android,Android 状态栏和导航栏的真终极解决方案

    去年我写过一篇文章,透明状态栏和导航栏的终极解决方案,并在 Github 上开源了代码,https://github.com/Zackratos/UltimateBar,其实在那之后,我一直对这个项目 ...

  8. 【干货】Android系统定制基础篇:第十三部分(开放root权限、禁止应用旋转、隐藏状态栏和导航栏)

    一.Android开放root权限 Android 5.1 1.修改 su 源码(system\extras\su\su.c),注释下面代码: int main(int argc, char **ar ...

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

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

最新文章

  1. Nginx反向代理和负载均衡部署指南
  2. Matlab符号运算总结
  3. 一次流量不均衡问题的排查记录
  4. python输入一个人的名字_怎样用c语言做到输入一个人的名字才会输出一个心?
  5. php 价钱计算,php公式计算
  6. MySQL存储过程编程
  7. 转载 | pymysql.err.InterfaceError: (0, ‘‘)解决办法
  8. python必备神器_Python 必备神器
  9. gifcam使用缩小内存_Vuex3.1.1更新:支持jsDelivr,修复内存泄漏
  10. 复变函数:傅里叶变换
  11. wav文件降噪c语言,语音降噪
  12. python最简单的画图代码
  13. 同步调用、异步调用、回调的简单理解
  14. 细说网络负载均衡技术
  15. 如何让word左边显示目录
  16. UERANSIM的使用
  17. 红色石头-通过Sina SAE中级开发者审核
  18. 苹果macOS10.15.7新版本下的SecureFX与SecureCRT破解后显示文件受损解决方法
  19. U盘在我的电脑里不显示,只在系统托盘区里可以检测到设备
  20. 前端的Docker入门与实践

热门文章

  1. java apm_apm是什么?
  2. springcloud(11)Alibaba-AHAS 限流方式
  3. Kwp2000协议的应用(程序原理篇)
  4. 【直播】杨毅远:集成学习答疑直播之六 -- 幸福感预测案例实战
  5. 2年工作经验拿到阿里和爱奇艺双offer是一种什么感觉?附上大佬的面经帮助到大家!
  6. 外企面试注意事项及英文interview
  7. [论文笔记] XRP: In-Kernel Storage Functions with eBPF
  8. ps美白磨皮处理第三方插件portraiture
  9. 【Arnold】C4D插件-阿诺德渲染器分享
  10. 基于javacv的视频截图、转码、提取音频