java - 如何检测屏幕切口(凹口)并获取其高度?

标签 java android resolution display android-displaycutout

无论应用程序窗口的尺寸或偏移/插入量如何,我都需要获取点相对于屏幕的准确坐标。我正在开发的手机具有 1080x2280 分辨率和 android 9。我尝试使用 getDefaultDisply 查找屏幕尺寸,但凹口高度从屏幕中减去:

// Testing with notch hidden; the screen is pushed down below it
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); // 1080x2062 (-notification bar height!)
getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics); // 1080x2192 (actual window height when notch is hidden)

如何获得隐藏时的真实分辨率和凹口高度?

最佳答案

我发现的解决方案是使用getRealMetrics来获取屏幕的高度。

getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics)

这也通过包括凹口的高度来计算屏幕的高度。适用于缺口模式开/关,也适用于没有缺口的设备

关于java - 如何检测屏幕切口(凹口)并获取其高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61374468/

相关文章:

java - 使用 .getInt 时出现 NullPointerException 和应用程序崩溃 (Android)

java - Java android中Room的CRUD,如何通过viewmodel将Repository中Dao和AsyncTask的删除行数返回给Catalog Activity?

c# - 相当小的位图返回无效参数

html - 如何编写兼容不同浏览器和分辨率的html和css

Java 泛型 - 方法签名的上限

java - 创建线程对象后调用实现runnable的Java类的方法

java - 类型变量如何允许类型错误?

android - 当 edittext 的默认文本为浮点值时,编辑文本光标重置为左侧

android - 金丝雀 channel 中 Android Studio 2 Beta 的 Android gradle 插件版本是多少?

html - css 流体布局图像问题