gpt4 book ai didi

android - 如何检测设备是否支持刘海屏?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:09 24 4
gpt4 key购买 nike

目前我面临一个问题,要检测移动设备是否支持 android 中的缺口显示。

谁能帮我解决这个问题? (我需要使用 android studio 中的代码来执行此操作)

谢谢。

最佳答案

一些 Oreo 设备也有缺口显示,如果您的目标是支持所有操作系统,那么您可以使用我的解决方案。根据 Material 设计指南,Android 设备的状态栏高度为 24dp。您可以使用以下方法获取设备状态栏高度和设备密度,并检查状态栏高度是否大于 24dp。如果它的高度超过 24dp,那么它就会显示缺口,然后您可以根据您的要求处理您的 View 位置。这也适用于奥利奥。

int statusBarHeight = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
statusBarHeight = getResources().getDimensionPixelSize(resourceId);
}

//DP转像素

public static int convertDpToPixel ( float dp){
DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
float px = dp * (metrics.densityDpi / 160f);
return Math.round(px);
}

//根据您的要求进行 UI 调整

if (statusBarHeight > convertDpToPixel(24)) {
RelativeLayout.LayoutParams topbarLp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
topbarlp.setMargins(0, statusBarHeight, 0, 0);

//Set above layout params to your layout which was getting cut because of notch
topbar.setLayoutParams(topbarlp)
}

关于android - 如何检测设备是否支持刘海屏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52514075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com