资源简介
小米华为OPPO/VIVO手机刘海屏适配
判断是否有刘海屏,根据不同的上述4类机型,进行适配。
代码依据于各家的开发适配文档,未来可能有更新。
判断是否有刘海屏,根据不同的上述4类机型,进行适配。
代码依据于各家的开发适配文档,未来可能有更新。
代码片段和文件信息
import android.content.Context;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class Utils {
/**
* 是否刘海
*
* @param context
* @return
*/
public static boolean hasNotchInScreen(Context context) {
boolean ret = false;
try {
ClassLoader cl = context.getClassLoader();
Class HwNotchSizeUtil = cl.loadClass(“com.huawei.android.util.HwNotchSizeUtil“);
Method get = HwNotchSizeUtil.getMethod(“hasNotchInScreen“);
ret = (boolean) get.invoke(HwNotchSizeUtil);
} catch (ClassNotFoundException e) {
Log.e(“test“ “hasNotchInScreen ClassNotFoundException“);
} catch (NoSuchMethodException e) {
Log.e(“test“ “hasNotchInScreen NoSuchMethodException“);
} catch (Exception e) {
Log.e(“test“ “hasNotchInScreen Exception“);
}
return ret;
}
/**
* 获取刘海尺寸:width、heightint[0]值为刘海宽度 int[1]值为刘海高度。
*
* @param context
* @return
*/
public static int[] getNotchSize(Context context) {
int[] ret = new int[]{0 0};
try {
ClassLoader cl = context.getClassLoader();
Class HwNotchSizeUtil = cl.loadClass(“com.huawei.android.util.HwNotchSizeUtil“);
Method get = HwNotchSizeUtil.getMethod(“getNotchSize“);
ret = (int[]) get.invoke(HwNotchSizeUtil);
} catch (ClassNotFoundException e) {
Log.e(“test“ “getNotchSize ClassNotFoundException“);
} catch (NoSuchMethodException e) {
Log.e(“test“ “getNotchSize NoSuchMethodException“);
} catch (Exception e) {
Log.e(“test“ “getNotchSize Exception“);
}
return ret;
}
/**
* 设置使用刘海区域
*
* @param window
*/
public static void setFullScreenWindowLayoutInDisplayCutout(Window window) {
if (window == null) {
return;
}
try {
WindowManager.LayoutParams layoutParams = window.getAttributes();
Class layoutParamsExCls = Class.forName(“com.huawei.android.view.LayoutParamsEx“);
Constructor con = layoutParamsExCls.getConstructor(WindowManager.LayoutParams.class);
object layoutParamsExObj = con.newInstance(layoutParams);
Method method = layoutParamsExCls.getMethod(“addHwFlags“ int.class);
method.invoke(layoutParamsExObj FLAG_NOTCH_SUPPORT);
} catch (Exception e) {
Log.e(“test“ “other Exception“);
}
- 上一篇:多线程Web服务器的设计与实现
- 下一篇:动物识别系统java版、C版
相关资源
- Android 8.0系统通知栏适配Demo
- Android屏幕适配---dimens转换工具
- autolayout.jar免费
- HTML移动端省市区三级联动,完美适配
- Android获取WIFI 的ssid 方法适配Android9
- Java 适配器模式的简单应用
- java 适配器模式
- java视频直播、聊天室、弹幕、多端适
- android 屏幕适配方案工具 第二版 可执
- popupwindow中显示listview自适配
- Android 打造万能的ListView GridView 适配
- android 适配器以及json解析模块小案例
- android 万能adapter适配器
- 常用数据适配器ArrayAdapter - android入门
- 常用数据适配器SimpleAdapter - android入门
- 数据适配器总结 - android入门视频40
- surfaceview 支持横竖屏切换 视屏适配
- android studio 屏幕适配 (autolayout)
- andorid拍照、获取相册图片(适配and
评论
共有 条评论