NotchFit是一款Android端的劉海屏適配庫,適配了O版本和P版本,它屏蔽了不同廠商不同設備不同系統版本對劉海屏適配帶來的一系列的繁雜的問題。
NotchFit可以智能的判斷劉海的邏輯參數,所謂的劉海邏輯參數是該庫對設備劉海蔘數的一個抽象獲取,劉海邏輯參數不單是獲取設備的硬件參數,還會根據系統的設置(如小米、華爲等手機可以在系統中控制劉海區域的使用與否)等條件判斷當前屏幕的統一的UI佈局狀態,檢查是否需要進行劉海適配。
總之:開發者不用關心具體設備和系統版本之間的差異,只需要通過回調函數中獲取的劉海邏輯參數適配自己的UI佈局即可。
使用方式:
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(activity);
5、啓用劉海
對於某些廠商設備(如小米、華爲)需要通過AndroidManifest配置或代碼控制使app支持劉海區域的使用,NotchFit提供了對劉海區域一鍵支持使用的接口,通過此接口可以使app一鍵支持劉海使用。
NotchFit.applyNotch(activity, true);
更多使用方式可查看github NotchFit
如有問題,歡迎指出,謝謝!!!