美文网首页UI
Android刘海屏适配

Android刘海屏适配

作者: DINGCHAO_ | 来源:发表于2020-12-07 10:12 被阅读0次

刘海屏幕的适配,在全面屏设置下,顶部有刘海的区域,有的会导致刘海把标题栏等内容遮盖如下图,这是美团的统一版本在小米和华为上的适配,可以看到小米的未遮挡内容,但在华为设备上,明显刘海遮住了一部分内容,目前手里只有这两台设备,所以没有更多机型测试,不过根据上线APP反馈,目前这个方法可以满足。此博文为笔记内容,所以内容不多


lh1.jpg
lh2.jpg

如果统一留出固定的高度,会在不同设备上造成不同的效果,现在使用动态计算顶部状态栏高度然后预留高度,防止被异形屏遮挡情况,使用之后的效果如下图


lh3.jpg
lh4.jpg

方法及使用

setStatusBarHeight方法

public static void setStatusBarHeight(Activity activity, View view) {
        int bar_height =getStatusBarHeight(activity);
        LinearLayout.LayoutParams layoutParams;
        layoutParams = (LinearLayout.LayoutParams) view.getLayoutParams();
        layoutParams.height = bar_height - 12;
        view.setLayoutParams(layoutParams);
    }
 public static int getStatusBarHeight(Context context) {
        int result = 0;
        int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
        if (resourceId > 0) {
            result = context.getResources().getDimensionPixelSize(resourceId);
        }
        return result;
    }

使用方法,在布局上设置一个占位条,需要适配的引用进来,因为有些布局是不用设置的

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:id="@+id/ll_include_status_bar_height_dynamic"
    android:layout_height="wrap_content">
    <!--状态栏动态填充高度,只在会影响的时候才需要,
    比如标题栏的时候,计算高度填充防止标题栏被刘海屏幕遮挡-->
    <View
        android:id="@+id/v_include_status_bar_height_dynamic"
        android:layout_width="match_parent"
        android:layout_height="10dp"
        android:background="@color/color_00000000" />
</LinearLayout>

调用设置

 @BindView(R.id.v_include_status_bar_height_dynamic)
    View v_include_status_bar_height_dynamic;

 Tool.setStatusBarHeight(MainActivity.this, v_include_status_bar_height_dynamic);

相关文章

  • 安卓适配

    ------刘海屏------屏幕适配 | Android 刘海屏适配总结Android刘海屏适配方案Androi...

  • 屏幕适配-刘海屏适配

    Android官方9.0刘海屏适配策略 1.如果非全屏模式(有状态栏),则app不受刘海屏影响,刘海屏的高度就是状...

  • 屏幕适配【刘海屏适配】

    Android官方9.0刘海屏适配策略 如果非全屏(有状态栏),则app不受刘海屏的影响,刘海屏的高就是状态栏的高...

  • 记录工作中的点点滴滴之Dialog全屏显示适配刘海屏

    Android中的Dialog适配刘海屏全屏显示: Dialog mdialog =new Dialog(mAct...

  • Android刘海屏适配

    刘海屏幕的适配,在全面屏设置下,顶部有刘海的区域,有的会导致刘海把标题栏等内容遮盖如下图,这是美团的统一版本在小米...

  • Android刘海屏适配

    背景 刘海屏指的是手机屏幕正上方由于追求极致边框而采用的一种手机解决方案。因形似刘海儿而得名。也有一些其他叫法:挖...

  • Android刘海屏适配

    背景:公司采购小米8SE后,专门用来做刘海屏的适配测试。本文主要针对小米手机做了适配,华为或其他机型没有在真机上测...

  • Android刘海屏适配

    Android 刘海屏 适配主要有三种方案 第一,LAYOUT_IN_DISPLAY_CUTOUT_MODE_DE...

  • Android刘海屏适配

    1. 前言 在我们进行APP开发时,屏幕适配是一件很头疼的事,而Android又相对iOS的较为混杂,各种各样厂商...

  • Android适配之版本适配

    这篇文章用来记录学习和开发时遇到的版本适配问题,持续更新 全面屏、刘海屏的适配:Android 9 支持最新的全面...

网友评论

    本文标题:Android刘海屏适配

    本文链接:https://www.haomeiwen.com/subject/wfezwktx.html