android 获取刘海高度,不同刘海屏幕获取安全高度
系统获取大于等于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 获取刘海高度,不同刘海屏幕获取安全高度相关推荐
- 安卓 获取屏幕坐标(点击屏幕获取坐标)
工具下载: 实现原理:创建一个背景透明的Activity, 点击屏幕时获取坐标信息并显示.在悬浮窗中调用该Activity,可以获取所有界面的坐标信息. package sc.tool.screen; ...
- Android 刘海、挖孔、水滴屏幕的状态高度获取与适配
一般需要处理状态栏的问题都是适配问题,适配就稍微有点麻烦,比如:刘海屏,水滴屏.以及刚刚不久出的挖孔屏等这类都属于刘海屏范围内,适配的话就要在各大厂商做处理了,比如华为:刚刚开始以为只需判断是否是刘海 ...
- android获取导航栏宽高,Android获取屏幕的宽高度、状态栏、标题栏、导航栏、编辑区域高度...
目录 0.相关文章: 1.获取屏幕款高度 代码: /** * 获取屏幕宽度 * * @param context 上下文对象 * @return int */ public static int ge ...
- android 获取navigationbar 高度,Android判断NavigationBar是否显示的方法(获取屏幕真实的高度)...
有些时候,我们需要知道当前手机上是否显示了NavigationBar,也就是屏幕底部的虚拟按键. 比如截屏的时候,要获取屏幕的高度,必须包括NavigationBar的高度. 试过网上的多种方法,但是 ...
- 安卓获取手机型号和刘海屏适配
先上完整代码,因为我这是和unity交互的版本,带有unity的设置就不改了,自行修改即可 package com.unity.qwe; import androidx.annotation.Requ ...
- android 软件盘未弹出如何获取高度,Android 软键盘的那些坑,一招搞定!
3 软键盘高度获取 对于上面的问题1,既然想要EditText单独顶上去,那么就需要知道当前键盘弹出的高度,再设置EditText坐标即可. 问题的关键转变为如何获取键盘的高度. Activity窗口 ...
- html如何制作查看更多横条,页面浏览量顶部横条显示代码-附“Js/Jquery获取网页屏幕可见区域高度”...
偶然看到这个页面浏览量显示的东东,很有意思,自己做了一个. 代码如下:html> 页面浏览量顶部横条显示 $(function(){ $(window).scroll(function() { ...
- JS获取屏幕浏览器网页高度和宽度属性
1 网页可见区域宽:document.body.clientWidth 2 网页可见区域高:document.body.clientHeight 3 网页可见区域宽:document.body.off ...
- H5手机端JS常用屏幕宽度和高度获取方法
js获取手机屏幕宽度.高度 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document. ...
- php获得屏幕宽度,PHP获取客户端屏幕宽度、高度及分辨率的方法
PHP获取客户端屏幕宽度.高度及分辨率的方法 发布时间:2015-11-21 08:08:45 作者:佚名 阅读:(61) php获取客户端屏幕宽度.高度及分辨率的方法 首先需要说明的是php是服务器 ...
最新文章
- 微信上传图片 41005 缺少多媒体文件
- WebLogic调用WebService提示Failed to localize、Failed to create WsdlDefinitionFeature
- 创建hugo博客_Hugo + Firebase:如何在几分钟内免费创建自己的静态网站
- linux下c 编译脚本,Linux下编译C语言与makefile脚本语言
- redhat7.2创建本地yum源
- 彻底搞懂阻塞、非阻塞、同步、异步
- 解决Failed to connect to raw.githubusercontent.com port 443的办法
- 图书馆借阅系统java参考文献_基于java的图书馆管理系统
- spring配置c3p0连接池
- android代码改字体颜色,如何更改Android Studio的代码字体和颜色
- 2019上半年软考 | 报名时间汇总(持续更新中)
- c# 使用Microsoft.Office.Interop.Excel导出文件时提示 兼容性检查
- 王者荣耀服务器维护什么时间结束,3月26日全服不停机更新公告
- matlab 定时器timercallback,matlab定时器timer的用法,特别要注意回调函数的参数!...
- Ajax提交Form表单的两种简单方式
- 新近起病的活动性RA患者中达标治疗与常规治疗的疗效比较:来自GUEPARD试验和ESPOIR队列的数据...
- VSCode配置Python开发环境!
- ”核高基“培育”外国种“(COM)究竟是谁的责任?
- Z-001 IVD体外诊断液面探测专题
- 威尼斯广场旅游攻略:探访威尼斯的文化中心