系统获取大于等于9.0才有

decorView.rootWindowInsets?.displayCutout.safeInsetTop (kotlin)

华为

判断

val cl: ClassLoader = context!!.classLoader

val HwNotchSizeUtil: Class = cl.loadClass("com.huawei.android.util.HwNotchSizeUtil")

val get = HwNotchSizeUtil.getMethod("hasNotchInScreen")

ret = get.invoke(HwNotchSizeUtil) as Boolean

获取

val cl = context!!.classLoader

val HwNotchSizeUtil = cl.loadClass("com.huawei.android.util.HwNotchSizeUtil")

val get: Method = HwNotchSizeUtil.getMethod("getNotchSize")

ret = get.invoke(HwNotchSizeUtil) as IntArray

小米

判断

com.bilibili.droid.SystemProperties.get("ro.miui.notch", "0") == "1"

获取

val res = context!!.resources

var resourceId = res.getIdentifier("notch_height", "dimen", "android");

if (resourceId > 0) {

return res.getDimensionPixelSize(resourceId);

}

resourceId = res.getIdentifier("status_bar_height", "dimen", "android");

if (resourceId > 0) {

return res.getDimensionPixelSize(resourceId);

}

小米有些版本可以通过notch_height获取,有些版本没有直接获取状态栏高度

魅族

判断

var fringeDevice = false

try {

val clazz = Class.forName("flyme.config.FlymeFeature")

val field = clazz.getDeclaredField("IS_FRINGE_DEVICE")

fringeDevice = field.get(null) as Boolean

} catch (e: Exception) {

}

if (fringeDevice) {

// 判断隐藏刘海开关(默认关)

val isFringeHidden = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {

Settings.Global.getInt(window.getContext().getContentResolver(),

"mz_fringe_hide", 0) == 1

} else {

true //当做默认值

}

return !isFringeHidden

}

return false

获取

val res = context!!.resources

var notchHeight = 0

val fhid = res.getIdentifier("fringe_height", "dimen", "android")

if (fhid > 0) {

notchHeight = res.getDimensionPixelSize(fhid)

}

VIVO

判断

try {

val cl =context.classLoader

val vivoFtFeature = cl.loadClass("android.util.FtFeature")

val get = vivoFtFeature.getMethod("isFeatureSupport", Int::class.javaPrimitiveType!!)

//表示是否有凹槽

val VIVO_HAS_NOTCH_DISPLAY:Int = 0x00000020

return get.invoke(vivoFtFeature, VIVO_HAS_NOTCH_DISPLAY) as Boolean

} catch (e: Exception) {

return false

}

获取

27dp

OPPO

判断

return window.context.packageManager

.hasSystemFeature("com.oppo.feature.screen.heteromorphism");

获取

80

oppo和vivo是默认的高度,没有厂商api

android 获取刘海高度,不同刘海屏幕获取安全高度相关推荐

  1. 安卓 获取屏幕坐标(点击屏幕获取坐标)

    工具下载: 实现原理:创建一个背景透明的Activity, 点击屏幕时获取坐标信息并显示.在悬浮窗中调用该Activity,可以获取所有界面的坐标信息. package sc.tool.screen; ...

  2. Android 刘海、挖孔、水滴屏幕的状态高度获取与适配

    一般需要处理状态栏的问题都是适配问题,适配就稍微有点麻烦,比如:刘海屏,水滴屏.以及刚刚不久出的挖孔屏等这类都属于刘海屏范围内,适配的话就要在各大厂商做处理了,比如华为:刚刚开始以为只需判断是否是刘海 ...

  3. android获取导航栏宽高,Android获取屏幕的宽高度、状态栏、标题栏、导航栏、编辑区域高度...

    目录 0.相关文章: 1.获取屏幕款高度 代码: /** * 获取屏幕宽度 * * @param context 上下文对象 * @return int */ public static int ge ...

  4. android 获取navigationbar 高度,Android判断NavigationBar是否显示的方法(获取屏幕真实的高度)...

    有些时候,我们需要知道当前手机上是否显示了NavigationBar,也就是屏幕底部的虚拟按键. 比如截屏的时候,要获取屏幕的高度,必须包括NavigationBar的高度. 试过网上的多种方法,但是 ...

  5. 安卓获取手机型号和刘海屏适配

    先上完整代码,因为我这是和unity交互的版本,带有unity的设置就不改了,自行修改即可 package com.unity.qwe; import androidx.annotation.Requ ...

  6. android 软件盘未弹出如何获取高度,Android 软键盘的那些坑,一招搞定!

    3 软键盘高度获取 对于上面的问题1,既然想要EditText单独顶上去,那么就需要知道当前键盘弹出的高度,再设置EditText坐标即可. 问题的关键转变为如何获取键盘的高度. Activity窗口 ...

  7. html如何制作查看更多横条,页面浏览量顶部横条显示代码-附“Js/Jquery获取网页屏幕可见区域高度”...

    偶然看到这个页面浏览量显示的东东,很有意思,自己做了一个. 代码如下:html> 页面浏览量顶部横条显示 $(function(){ $(window).scroll(function() { ...

  8. JS获取屏幕浏览器网页高度和宽度属性

    1 网页可见区域宽:document.body.clientWidth 2 网页可见区域高:document.body.clientHeight 3 网页可见区域宽:document.body.off ...

  9. H5手机端JS常用屏幕宽度和高度获取方法

    js获取手机屏幕宽度.高度 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document. ...

  10. php获得屏幕宽度,PHP获取客户端屏幕宽度、高度及分辨率的方法

    PHP获取客户端屏幕宽度.高度及分辨率的方法 发布时间:2015-11-21 08:08:45 作者:佚名 阅读:(61) php获取客户端屏幕宽度.高度及分辨率的方法 首先需要说明的是php是服务器 ...

最新文章

  1. 微信上传图片 41005 缺少多媒体文件
  2. WebLogic调用WebService提示Failed to localize、Failed to create WsdlDefinitionFeature
  3. 创建hugo博客_Hugo + Firebase:如何在几分钟内免费创建自己的静态网站
  4. linux下c 编译脚本,Linux下编译C语言与makefile脚本语言
  5. redhat7.2创建本地yum源
  6. 彻底搞懂阻塞、非阻塞、同步、异步
  7. 解决Failed to connect to raw.githubusercontent.com port 443的办法
  8. 图书馆借阅系统java参考文献_基于java的图书馆管理系统
  9. spring配置c3p0连接池
  10. android代码改字体颜色,如何更改Android Studio的代码字体和颜色
  11. 2019上半年软考 | 报名时间汇总(持续更新中)
  12. c# 使用Microsoft.Office.Interop.Excel导出文件时提示 兼容性检查
  13. 王者荣耀服务器维护什么时间结束,3月26日全服不停机更新公告
  14. matlab 定时器timercallback,matlab定时器timer的用法,特别要注意回调函数的参数!...
  15. Ajax提交Form表单的两种简单方式
  16. 新近起病的活动性RA患者中达标治疗与常规治疗的疗效比较:来自GUEPARD试验和ESPOIR队列的数据...
  17. VSCode配置Python开发环境!
  18. ”核高基“培育”外国种“(COM)究竟是谁的责任?
  19. Z-001 IVD体外诊断液面探测专题
  20. 威尼斯广场旅游攻略:探访威尼斯的文化中心

热门文章

  1. Apache DBUtils
  2. Java实现冒泡排序(详解)
  3. 手机及电脑抓包(tcp,udp,http)
  4. 渗透测试工程师常见面试33题——应届生
  5. 【BUUCTF】[SWPU2019]神奇的二维码
  6. 【Python PE解析器】——制作解析PE文件软件 并进行编译EXE程序 并打包为单个安装程序(全程详细包资料)
  7. 银行叫号排队系统C语言,【分享】C语言 银行取票排队系统
  8. VS编程之查看数组信息
  9. revit二次开发 材质类别分析
  10. 用php制作一个简单的网页留言板