美文网首页Android开发Android技术
适配Android刘海屏小结

适配Android刘海屏小结

作者: 吴小博Toby | 来源:发表于2018-09-07 16:54 被阅读9次

by hzwusibo 20180907

一、沉浸式与非沉浸式来回切换页面适配

二、沉浸式页面适配

(非沉浸式页面,系统自动适配)

不进行任何适配的情况下,带有刘海屏的手机都会有一套基本一致的处理逻辑

一、沉浸式与非沉浸式来回切换页面适配

阅读正文界面

1、 存在问题: 正文页面在阅读的时候是沉浸式的(无菜单,状态栏),    由于沉浸式的时候, 系统的策略是刘海旁边为黑色(屏幕高度此时不算刘海旁边区域高度), 点击正文空白区域, 显示菜单的时候(显示状态栏,这时候为非沉浸式,屏幕高度算刘海旁边区域高度), 导致屏幕高度老是变化, 阅读器sdk会重新对章节,按屏幕高度重新排版。 所以看书界面会经常显示加载中。 

2、蜗牛阅读正文适配:  使用假状态栏(一直不显示真状态栏,一直为沉浸式, 高度不会变化)

3、云阅读解决:

使用了文漫工具类, 刘海检测Util (DisplayCutoutUtil  .  hasDisplayCutout()是否为刘海屏  ,. displayCutoutRect()获取刘海屏的刘海矩形区域)。

4、云阅读书籍正文策略:

先检测是否是刘海屏幕

1、如果不是刘海屏幕——> 不改变

2、如果是刘海屏幕  ——> 

方案一:  简单方案( 很简单, 暂时使用这个方式)

a、 让状态栏长期显示 (反正不显示也是黑色的), 不设置getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)(全屏模式),  菜单切换也不动FLAG_FULLSCREEN

b、a步骤完成,发现正文顶上去了

调整MainView顶部的paddingtop 为 原来的  paddingtop + 刘海的区域的高度 

方案二:  针对不同的手机,对其进行适配 (比较麻烦,暂时放弃)

已公布实现方案的厂商(适配方式基本是通过反射调用特有方法/获取系统属性来判断),包括华为、小米、OPPO、VIVO,官方的适配文档地址如下: 未公布刘海屏适配文档的厂商,只能等待这些机型升级到Android P之后通过 Google 官方的方式进行适配

华为:华为刘海屏手机安卓O版本适配指导

通过EMUI系统内提供的com.huawei.android.util.HwNotchSizeUtil来处理

小米:小米 MIUI Notch 屏 Android O 适配说明

通过MIUI系统属性ro.miui.notch来判断是否为刘海屏

OPPO:OPPO凹形屏适配说明

通过com.oppo.feature.screen.heteromorphism属性来判断是否为刘海屏

VIVO:VIVO全面屏应用适配指南

通过特有类android.util.FtFeature类来判断是否为刘海屏

另外,也和蜗牛阅读一样,把底部的导航栏隐藏了

二、沉浸式页面适配

1、云阅读有声书播放界面是沉浸式的状态栏,

总体思路:刘海屏状态栏的高度其实和普通的都是一样, 所以只要给全面屏的页面设置一个paddingtop就可以实现,写一个公共的头部布局在基类里用,给头布局设置一个ayout_marginTop。

1、 设置全屏,设置状态栏透明

2、获取到头布局  audio_player_title,  非刘海屏幕的时候离顶部,默认20dp

3:给头布局设置布局的paddingtop 

非刘海屏幕——>不用处理

刘海屏幕——> 设置mtitleView 距离顶部为刘海区域的高度

相关文章

  • 安卓适配

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

  • 适配Android刘海屏小结

    by hzwusibo 20180907 一、沉浸式与非沉浸式来回切换页面适配 二、沉浸式页面适配 (非沉浸式...

  • 屏幕适配-刘海屏适配

    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的较为混杂,各种各样厂商...

网友评论

  • 753a805958a5::+1: 不错的分享 有demo分享就好了。直观参考学习

本文标题:适配Android刘海屏小结

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