NotchFit是一款Android端的刘海屏适配库,适配了O版本和P版本,它屏蔽了不同厂商不同设备不同系统版本对刘海屏适配带来的一系列的繁杂的问题。
NotchFit可以智能的判断刘海的逻辑参数,所谓的刘海逻辑参数是该库对设备刘海参数的一个抽象获取,刘海逻辑参数不单是获取设备的硬件参数,还会根据系统的设置(如小米、华为等手机可以在系统中控制刘海区域的使用与否)等条件判断当前屏幕的统一的UI布局状态,检查是否需要进行刘海适配。
总之:开发者不用关心具体设备和系统版本之间的差异,只需要通过回调函数中获取的刘海逻辑参数适配自己的UI布局即可。
使用方式:
库引入:
compile 'com.wcl.notchfit:notchfit:1.3'
1、自定义适配
对需要进行刘海适配的UI布局,通过刘海逻辑参数自定义适配。
NotchFit.fit(this, new OnNotchCallBack() {
@Override
public void onNotchReady(NotchProperty notchProperty) {
if(notchProperty.isNotchEnable()){
int notchHeight = notchProperty.getNotchHeight();
//通过获取的notchHeight刘海高度参数,对UI布局进行适配
}
}
});
2、全屏适配
NotchFit不单回调获取了刘海逻辑参数,还对当前Activity进行了全屏显示处理。
NotchFit.fit(this, NotchScreenType.FULL_SCREEN, new OnNotchCallBack() {
@Override
public void onNotchReady(NotchProperty notchProperty) {
if(notchProperty.isNotchEnable()){
if(notchProperty.isNotchEnable()){
int notchHeight = notchProperty.getNotchHeight();
//通过获取的notchHeight刘海高度参数,对UI布局进行适配 }
}
}
});
3、沉浸适配
NotchFit不单回调获取了刘海逻辑参数,还对当前Activity进行了沉浸显示处理。
NotchFit.fit(this, NotchScreenType.TRANSLUCENT, new OnNotchCallBack() {
@Override
public void onNotchReady(NotchProperty notchProperty) {
if(notchProperty.isNotchEnable()){
if(notchProperty.isNotchEnable()){
int notchHeight = notchProperty.getNotchHeight();
//通过获取的notchHeight刘海高度参数,对UI布局进行适配 }
}
}
});
4、黑条填充
如果想快速对app中的全屏UI进行统一刘海适配,对刘海区域进行黑条填充,UI布局统一下移刘海的高度可以说是一个比较快捷的适配方式。
此api可以一键完成此工作。
NotchFit.fitUnUse(this);
5、启用刘海
对于某些厂商设备(如小米、华为)需要通过AndroidManifest配置或代码控制使app支持刘海区域的使用,NotchFit提供了对刘海区域一键支持使用的接口,通过此接口可以使app一键支持刘海使用。
NotchFit.applyNotch(activity, true);
更多使用方式可查看github NotchFit
如有问题,欢迎指出,谢谢!!!