最新动态
Android刘海屏适配精炼详解手机状态「Android刘海屏适配精炼详解」
2025-04-03 12:49  浏览:66

一、前期基础知识储备

话不多说,这么多刘海屏手机今年集中爆发,所以尽管刘海屏不好看,但是还是要适配。

2017年苹果X开启了刘海屏时代,2018年集中爆发,纷纷采取刘海屏这一策略来实现全面屏的概念(看36氪中的新闻,明年是5G元年,同时三星推出了折叠屏,未来的手机主流趋势是否会发生改变暂不得而知,但刘海屏不会退出市场,淡出视野这一点是确定的,所以Android手机对于刘海屏的适配也是比较重要的。所谓适配刘海屏,其实就是处理与刘海齐平的手机屏幕部分,这也是所有刘海屏手机系统自带的一个可选项:是否显示刘海屏,以华为刘海屏为例,是否显示刘海屏前后效果如下

 

从上面的图中我们可以发现这几个重要的适配信息

①与刘海屏齐平的手机屏幕部分实际上是手机的状态栏

②显示刘海屏,刘海部分显示的状态背景色为APP应用背景色,状态栏文字图标部分变为黑色

③不显示刘海屏,则刘海部分显示的状态栏为手机原始状态栏,电量标志、事件、运营商信息都是白字

所以适配刘海屏的关键在于

①判断是否是刘海屏,不是刘海屏就隐藏状态栏,是刘海屏则显示状态栏,同时对状态栏做出相应处理

②如果是刘海屏,则显示的状态栏颜色变为APP应用本身的背景色

③其次状态栏中的图标、文字等信息是否需要变色(应用为深色背景色时定为白色,应用为浅色背景色时定为黑色

二、上代码 具体实现

1)判断是否是刘海屏手机 工具类 judgeNotchUtils

使用代码

2)状态栏文字图标颜色控制 工具类 StatusBarUtils

使用时代码如下: 比如博主的开发的应用是浅色背景色,所以标题栏也被设为浅色,此时应该修改状态栏显色黑色文字图标

同时将Activity根布局的fitsSystemWindows属性设为true(默认为false,此时根布局的paddding属性由系统设置,用户在布局文件中设置的 padding会被忽略。系统会为该View设置一个paddingTop,值为statusbar(状态栏)的高度。即此时应用的Content不会和系统状态栏发生重叠。

若不设置此属性,则Activity内容会与系统状态栏发生重叠。(╯﹏╰)(当时调了好久)(╯﹏╰)

效果图如下

①应用页:状态栏文字、图标设为黑色

 

②欢迎页:状态栏文字、图标不改变颜色,仍为白色

以上图片,读者凑合看一下,不好截刘海屏的小刘海,所以后期自己加了形状表示一下。o(╯□╰)oo(╯□╰)oo(╯□╰)o

③不适配刘海屏时的图片(直接隐藏状态栏,刘海屏手机使用体验感稍差

 

附上各刘海屏手机厂商的刘海屏适配方案(谢谢奥特曼超人博主的分享

android 兼容huawei手机刘海屏解决方案 

android 兼容vivo手机刘海屏解决方案 

android兼容oppo手机刘海屏解决方案 

android兼容小米xiaomi刘海屏解决方案 

android 关于google刘海屏的解决方案

最后,更多刘海屏适配文章推荐

CSDN

Android 刘海屏适配全攻略 - Android P 模拟器可模拟刘海屏
android 全面屏/刘海屏有效适配
详解Android刘海屏适配

简书

适配Android刘海屏小结
Android 刘海屏适配总结

博客园

一大波 Android 刘海屏来袭,全网最全适配技巧

-------------------------------------------------------------我是附录分割线---------------------------------------------------------------

附录1:透明度 — alpha 取值对照

100% — FF //完全不透明
95% — F2
90% — E6 
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00 // 完全透明

使用时:比如 纯红色—#ff0000;透明度为50%的红色—#80ff0000 或者可以写成0x80ff0000

代码里设置颜色时

以上三种设置透明色的方法都是一样的效果。

如果需要其他数值的透明色,可以自己进行计算。找一个进制转换网站,将10进制的数据转换为16进制即可计算对应的透明色。

附录2:动态设置手机状态栏、导航栏的颜色。(利用DecorView的属性将两个栏置于Activity的上层 Activity布局中加入色块

效果如下

附录3:为了更好的显示效果,选择在开启应用的时候隐藏状态栏和导航栏,当用户需要时手指上滑出现

(类似于视频播放应用,为了体验,播放时会才去全屏显示,点击屏幕中心出现状态栏和导航栏

代码如下

效果如下图:刚进入应用时隐藏两栏,手指在底部上滑时出现导航栏和状态栏。

:区分于附录2中的处理方式—将状态栏和导航栏设置为透明状态;附录3中是将两栏设置为隐藏状态

    以上就是本篇文章【Android刘海屏适配精炼详解手机状态「Android刘海屏适配精炼详解」】的全部内容了,欢迎阅览 ! 文章地址:http://www.razcy.com/quote/12953.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 月落星辰移动站 http://m.razcy.com/ , 查看更多