Android沉浸式效果的实现,状态栏和导航栏均支持设置颜色、渐变色、图片、透明度、内容入侵和状态栏深色字体;兼容竖屏、横屏,当屏幕旋转时会自动适配。

现在我们的项目中经常需要适配StatusBarNavigationBar,我们需要写很多的代码来进行适配,已完成所需功能。现在来介绍一个第三方Sofia来进行适配,大大的简化了我们代码的编写。下面来看具体使用。

Sofia的GitHub地址:https://github.com/yanzhenjie/Sofia

首先,Sofia的引入,添加依赖

 implementation 'com.yanzhenjie:sofia:1.0.5'

其次,提供的方法列表如下:

// 状态栏深色字体。
Bar statusBarDarkFont();// 状态栏浅色字体。
Bar statusBarLightFont();// 状态栏背景色。
Bar statusBarBackground(int statusBarColor);// 状态栏背景 Drawable。
Bar statusBarBackground(Drawable drawable);// 状态栏背景透明度。
Bar statusBarBackgroundAlpha(int alpha);// 导航栏背景色。
Bar navigationBarBackground(int navigationBarColor);// 导航栏背景 Drawable。
Bar navigationBarBackground(Drawable drawable);// 导航栏背景透明度。
Bar navigationBarBackgroundAlpha(int alpha);// 内容入侵状态栏。
Bar invasionStatusBar();// 内容入侵导航栏。
Bar invasionNavigationBar();// 让某一个 View 考虑状态栏的高度,显示在适当的位置,接受 ViewId。
Bar fitsStatusBarView(int viewId);// 让某一个 View 考虑状态栏的高度,显示在适当的位置,接受 View。
Bar fitsStatusBarView(View view);// 让某一个 View 考虑导航栏的高度,显示在适当的位置,接受 ViewId。
Bar fitsNavigationBarView(View view);// 让某一个 View 考虑导航栏的高度,显示在适当的位置,接受 View。
Bar fitsNavigationBarView(View view);

注意:Sofia.with(Activity)后返回一个Bar接口实例,这里的方法结合具体的场景调用一个或者几个方法,也可以一个都不调用

最后,一些场景的方法使用

1、如图

代码为:

Sofia.with(this).statusBarLightFont()//状态栏浅色字体.invasionStatusBar()//内容入侵状态栏.navigationBarBackground(ContextCompat.getColor(this, R.color.toast_bg))//导航栏背景色.statusBarBackground(Color.TRANSPARENT);//状态栏背景色

2、如图,改变状态栏和导航栏背景


代码为:

Sofia.with(this).statusBarBackground(ContextCompat.getDrawable(this, R.drawable.banner))//设置状态栏背景Drawable.navigationBarBackground(ContextCompat.getDrawable(this, R.drawable.icon_01));//设置导航栏背景Drawable

参考:http://p.codekk.com/detail/Android/yanzhenjie/Sofia

Android沉浸式效果的实现—Sofia的使用相关推荐

  1. android 视频沉浸式,Android项目实战(四十一):游戏和视频类型应用 状态栏沉浸式效果...

    原文: Android项目实战(四十一):游戏和视频类型应用 状态栏沉浸式效果 需求: 手机app ,当打游戏或者全屏看视频的时候会发现这时候手机顶部的状态栏是不显示的,当我们从手机顶端向下进行滑动或 ...

  2. android 透明栏,Android状态栏透明(沉浸式效果)

    Android状态栏透明(沉浸式效果) 默认效果 沉浸式效果 方式一 源码 1. 修改状态栏和导航栏的属性为透明 if (Build.VERSION.SDK_INT >= Build.VERSI ...

  3. Android 状态栏沉浸式效果

    我们在微信或者QQ 网易云上都有看到过状态栏上的颜色或者 背景是一致的.最近也用到这个需求,分享一下代码 代码很简单两步就足够了 第一步,在需要设置沉浸式效果的Activity中调用此方法,如果整个A ...

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

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

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

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

  6. 高大上的Android沉浸式状态栏?

    背景 之前做过Android沉浸式状态栏的相关需求,但是一直忙于工作,没时间系统的整理下沉浸式相关的知识,所以今天抽出时间,写一篇 Android沉浸式状态栏的文章. 何为沉浸式 沉浸式就是要给用户提 ...

  7. android 5.0状态栏下载地址,Android沉浸式状态栏(5.0以上系统)

    Android沉浸式状态栏(5.0以上系统) 沉浸式状态栏可以分为两种: 1.直接给状态栏设置颜色 (如下图:) 这里写图片描述 java代码形式: if (Build.VERSION.SDK_INT ...

  8. 史上最完美的Android沉浸式状态导航栏攻略

    前言 最近我在小破站开发一款新App,叫高能链.我是一个完美主义者,所以不管对架构还是UI,我都是比较抠细节的,在状态栏和导航栏沉浸式这一块,我还是踩了挺多坑,费了挺多精力的.这次我将我踩坑,适配各机 ...

  9. android 沉浸式开源库,Android沉浸式状态栏

    关于Android沉浸式状态栏, 网上已经有很多开源库, 虽然开源库可以解决某些特定布局下的沉浸式状态栏问题, 但是遇到比较特殊的布局就无法解决了, 所以了解一下沉浸式状态栏如何实现是有必要的. 无论 ...

最新文章

  1. 在解决方案中所使用 NuGet 管理软件包依赖
  2. 基于kafka_2.11-2.1.0实现的生产者和消费者代码样例
  3. php mysql记录用户行为_PHP实现用session来实现记录用户登陆信息
  4. ftp文档服务器设置,ftp服务器基本设置
  5. 学生分组(洛谷P1109题题解,C++语言描述)
  6. Linux的sys接口和proc接口创建
  7. 高通人工智能应用创新大赛收官!9大奖项花落谁家?
  8. 我的手机,被“探针”了吗?
  9. 通过cmd命令行开启计算机xx服务
  10. 『号外号外』WoS数据库更新后导入VOSviewer出错的原因
  11. C/C++编程学习 - 第2周 ③ 反向输出一个三位数
  12. 2021全国大学生电子设计竞赛--电源--三相逆变(硬件)
  13. 费氏数列 中第n项数值的计算并打印
  14. Windows开机出现Scaning and repairing错误
  15. 华为linux是否支持背光键盘,华为笔记本背光键盘怎么开
  16. Devops 开发运维基础篇之Jenkins部署与使用
  17. 联想YOGA 3笔记本如何U盘启动
  18. 现实与理想(中国台湾大学彭明辉)
  19. MegaCli 安装及使用
  20. System.Windows.Markup.XamlParseException:““在“System.Windows.StaticResourceExtension”上提供值时引发了异常

热门文章

  1. 华为鸿蒙智慧屏和手机,鸿蒙系统初体验,华为智慧屏V65到底值不值得入手
  2. 【毕业设计】大数据B站用户数据情感分析系统 - python
  3. (图文绝对详细)Word中如何在箭头上方插入文字
  4. Spring控制反转和依赖注入
  5. localhost禁止访问(Forbidden)解决办法
  6. TXT+sqlite+Android,sqlite 导入txt
  7. CodeForces - 645C Enduring Exodus(二分)
  8. Java-使用Dom4j解析xml文档
  9. 《视频解密》中文版(第四版) 第六章 数字视频接口(第二部分)
  10. leetcode每日一题——T70. 爬楼梯(易):斐波那契公式