目前我面临着检测移动设备是否支持 Android 中的缺口显示的问题。
任何人都可以帮助我吗? (我需要使用 android studio 中的代码来完成此操作)
Thanks.
一些奥利奥设备也有凹口显示,如果您的目标是支持所有操作系统,那么您可以使用我的解决方案。根据材料设计指南,Android 设备的状态栏高度为 24dp。您可以使用以下方法获取设备状态栏高度和设备密度,并检查状态栏高度是否超过 24dp。如果它的高度超过 24dp,那么它就会显示凹口,然后您可以根据您的要求处理您的视图位置。这也适用于奥利奥。
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)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)