HarmonyOS 鸿蒙Next 华为平板右上角摄像头挖空UI适配方法

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 华为平板右上角摄像头挖空UI适配方法

华为平板右上角有摄像头挖空,应该怎么适配ui,有相关api支持或其他判断方法吗。需要获取都前置摄像头在屏幕上的位置,然后调整ui控件不被摄像头覆盖

8 回复

 貌似 Java开发,不说哪个 API 版本等开发环境信息想帮你也帮不上。要是不纠结直接避开状态栏区域。

是用Android studio 开发的。直接避开状态栏应该不行,这里的需求是要全屏

那这平板系统是早期版本了,论坛多数都在讨论ArkTS开发,要是用Java,你得给出系统版本信息,API版本等,看有没有谁有类似经验提供,不行就去我的客服开工单提交咨询。

提了工单,结果回复说工单只回复联盟相关的问题

补充:使用以下方式在刘海屏的手机上可以正常获取刘海的相关信息,但是平板上获取到的cutout为null

View.OnApplyWindowInsetsListener() {   

    [@Override](/user/Override)     

    public WindowInsets onApplyWindowInsets(View view, WindowInsets windowInsets) {        

         if (Build.VERSION. SDK_INT >= Build.VERSION_CODES. P ) {  

             DisplayCutout cutout = windowInsets.getDisplayCutout();

             if (cutout == null) {

                 Log. e ( TAG , "cutout==null, is not notch screen"); 

            } else {

                 List<Rect> rects = cutout.getBoundingRects(); 

                if (rects == null || rects.size() == 0) {

                     Log. e ( TAG , "rects==null || rects.size()==0, is not notch screen"); 

                } else { 

                    contentView.setPadding(cutout.getSafeInsetLeft(), cutout.getSafeInsetTop(),

                             cutout.getSafeInsetRight(), cutout.getSafeInsetBottom());

                 } 

            } 

        }

         return windowInsets;

     } }

补充:matepad pro平板右上角有挖空摄像头,如图,电池图标右侧是摄像头区域,自己的app要怎么适配
DisplayCutout cutout = windowInsets.getDisplayCutout() 获取到的cutout一直是null

a487cabe9632f3f64600f2638108a738.jpg

HarmonyOS 鸿蒙Next 华为平板右上角摄像头挖空UI适配方法:

  1. 获取摄像头挖空位置:使用DisplayCutout类通过windowInsets.getDisplayCutout()获取挖空区域的位置和大小。
  2. 调整UI布局:根据挖空区域的位置,调整UI控件的布局,确保关键内容不被挖空区域遮挡。
  3. 全屏显示处理:通过API设置窗口为全屏显示,并适当隐藏顶部状态栏,以提供更好的沉浸式体验。

以上步骤通常能有效适配华为平板的挖孔屏。如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部