Android沉浸式效果的实现—Sofia的使用

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值