前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android手机 全面屏(18:9屏幕)适配指南

Android手机 全面屏(18:9屏幕)适配指南

作者头像
程思扬
发布于 2022-01-10 07:09:47
发布于 2022-01-10 07:09:47
1.6K00
代码可运行
举报
文章被收录于专栏:程思阳的专栏程思阳的专栏
运行总次数:0
代码可运行

从小米MIX 1发布以来,越来越多所谓“全面屏”手机发布,如三星S8,小米MIX2,VIVO X20,Google Pixel2等等…2017年下半年开始,“全面屏”将大范围覆盖,低至千元机水平,就像当年手机屏幕从720P到1080P过渡一样,历史车轮,滚滚向前,不可阻挡!

暂且不论所谓全面屏如何定义,作为Android开发者更多关心的是屏幕适配的兼容性。全面屏刚出来的时候并不可怕,可怕的是后来出现了一些异形全面屏——把屏幕挖掉一块的那种异类!全面屏手机大致思路都是压缩额头与下巴,屏幕比例从传统的16:9变为18:9,提高屏占比以及屏幕内的虚拟导航键,本文将简要介绍全面屏适配中一些需要注意的东西以及解决方案。

适配指南

一、声明最大屏幕高宽比

1.1:在应用配置文件AndroidManifest.xml中显式声明支持的最大屏幕高宽比(maximum aspect ratio)

其中 ratio_float 为高宽比: 传统屏幕:ratio_float = 16/9 = 1.778 ; 三星S8屏幕:ratio_float = 18.5/9 = 2.056。 鉴于目前全面屏屏幕比例,将ratio_float设置为2.1即可适配一众全面屏手机。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<meta-data 
  android:name="android.max_aspect"
  android:value="ratio_float" />

然而有一点需要注意的是,在Android 7.0以上Google默认支持了分屏模式,即Manifest文件中配置Activity的android:resizeableActivity默认属性为true,在这种情况下并不需要配置Maximum Aspect Ratio即可自动适配全面屏。如果由于某些原因(UI适配等)禁止了分屏模式,这个时候就要注意了!负责将出现上下黑条的显示效果,奇丑无比!Screens Support 官方文档

1.2.高版本解决方案 在Android 7.0以上Google默认支持了分屏模式,即Manifest文件中配置Activity的android:resizeableActivity默认属性为true,在这种情况下并不需要配置Maximum Aspect Ratio即可自动适配全面屏。如果由于某些原因(UI适配等)禁止了分屏模式,这个时候就要注意了!负责将出现上下黑条的显示效果,奇丑无比!

二、启动页适配

在做启动优化,解决冷启动白屏的时候,我们往往会为要启动的Activity设置主题为一张背景图。那么问题就来了,以往16:9的的背景图在18:9的屏幕中会有什么表现呢?

这种情况下就尴尬了,我们知道很多启动页背景都是动态下发的(广告)内容丰富,即使是.9图在这种场景恐怕也难以解决。这点在金立手机上的做法值得一提,看图:

是好是坏不便多言,但是有兼容性方案总比莫名拉伸好吧!若Android阵营没有一个统一规范,恐怕又要难为开发者、UI设计师了吧!

不能依赖单一厂商的解决方案,只能从Android系统属性出发。考虑到目前大部分全面屏手机只是在高度上拉长,且大多为6.0英寸左右,像素密度对比xxhdpi并没有多大区别,那我们可以在项目中增加一组资源drawable-xxhdpi-2160x1080 、drawable-long 这样解决图片的拉伸问题,当然最好的方法还是用相对布局采用XML的方式,或者.9图的解决方案。

三、虚拟导航键(Navigation Bar)优化

个人觉得虚拟导航键并不是一个好东西,依稀记得HTC被双下巴甚至四下巴支配的恐惧,虚拟导航键总让人出戏。可是全面屏风潮的到来,彻底将正面实体按键拍到了沙滩上。 虚拟导航键系统,桌面美如画,进入到应用里就是傻大粗的黑条,几乎没有几个APP做虚拟导航键的适配,图就不上了,可以参考华为那些机子。。。

总之,要达到一体化的沉浸体验,就应该尽量避免导航键出戏,选择合适的虚拟键样式,保证视觉的统一性。全面屏时代的到来,开发者总该好好管管这虚拟导航键了吧!

虚拟导航键修改方法一: window.setNavigationBarColor (int color) 注意在调用该接口时,需要立一些flag,该接口说明如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/** 
* Sets the color of the navigation bar to {@param color}. 
* For this to take effect,
* the window must be drawing the system bar backgrounds with * {@link android.view.WindowManager.LayoutParams#FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS} and
* {@link android.view.WindowManager.LayoutParams#FLAG_TRANSLUCENT_NAVIGATION} must not be set.
If {@param color} is not opaque, consider setting 
* {@link android.view.View#SYSTEM_UI_FLAG_LAYOUT_STABLE} and * {@link android.view.View#SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION}. * <p>
 The transitionName for the view background will be "android:navigation:background".
 </p>
 /
 public abstract void setNavigationBarColor(@ColorInt int color);​

虚拟导航键修改方法二:,在主题中添加以下设置项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<item name="android:navigationBarColor">要设置的颜色值</item>

参考资料: 小米全面屏及虚拟键适配说明. 金立18:9全面屏适配说明. 全面屏时代 | APP如何快速适配? 这4个关键点你要知道!.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/10/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android手机 全面屏(18:9屏幕)适配指南
从小米MIX 1发布以来,越来越多所谓“全面屏”手机发布,如三星S8,小米MIX2,VIVO X20,Google Pixel2等等...2017年下半年开始,“全面屏”将大范围覆盖,低至千元机水平,就像当年手机屏幕从720P到1080P过渡一样,历史车轮,滚滚向前,不可阻挡!
用户2802329
2018/08/07
1.9K0
Android手机 全面屏(18:9屏幕)适配指南
Android全面屏适配指南
全面屏是手机业界对于超高屏占比手机设计的一个宽泛的定义。从字面上解释就是,手机的正面全部都是屏幕,四个边框位置都是采用无边框设计,追求接近100%的屏占比。但受限于目前的技术,还不能做到手机正面屏占比100%的手机。现在业内所说的全面屏手机是指真实屏占比可以达到80%以上,拥有超窄边框设计的手机。
xiangzhihong
2022/11/30
2.2K0
Android 适配18:9全面屏适配
2017年是全面屏爆发的大热潮,18:9屏幕的相拥而来,在使用18:9等非传统16:9的手机之后,部分手机应用出现了上下黑边。
码客说
2019/10/22
1.1K0
Android 刘海屏适配总结
随着 Apple 发布 iPhone X 之后,各大手机厂商也开始模仿这种刘海屏的设计,而且刘海屏手机的用户也是越来越大,前段时间将项目进行了所有主流厂商的刘海屏手机的适配,以便让刘海屏手机的用户也能有更好的体验。
developerHaoz
2018/08/20
1.9K0
Android刘海屏、水滴屏全面屏适配详解
上述两种屏幕都可以统称为刘海屏,不过对于右侧较小的刘海,业界一般称为水滴屏或美人尖。为便于说明,后文提到的「刘海屏」「刘海区」都同时指代上图两种屏幕。
Android技术干货分享
2019/07/23
3.1K0
Android--沉浸式导航栏适配
本文是用于设配SDK4.4到5.0的沉浸式导航栏适配(4.4下面的实现不了沉浸式),上次说到适配沉浸式状态栏时,为DecorView添加一个View可以是实现,导航栏也同样,但是不是所有手机都有导航栏,所以我们先要判断手机有没有导航栏 public static boolean hasNavigationBar(Context context) { WindowManager windowManager = (WindowManager) context.getSystemServi
aruba
2020/07/03
1.7K0
Android--沉浸式导航栏适配
Android开发(52) Android透明状态栏。适配 4.4 以上及 5.0以上设备
有时候我们想在 andorid 手机上实现一种 跨越 顶部状态栏的效果,比如一张图片直接显示在 状态栏内。比如下图:
张云飞Vir
2020/03/16
2K0
全民K歌折叠屏适配探索
| 导语随着移动端的屏幕迅猛发展,越来越多的异形屏幕诞生了;这给用户带来了全新的体验,也同时给开发者带来了适配的问题。在本篇文章中主要描述了全民K歌在折叠屏适配上的探索与常见的适配方案梳理。 引 现如今,移动端屏幕的发展可谓迅猛百花齐放! 在之前,我们已经适配了:不同比例、圆角、挖孔、刘海… 是时候,让我们开始适配折叠屏吧! 本篇文章主要介绍折叠屏的基础概念及几种适配方案;同时涵盖了全民K歌在折叠屏上的适配探索与实际效果。 折叠屏 折叠屏,顾名思义,其显示屏采用柔性技术,可在使用时对屏幕进行折叠、展开
QQ音乐技术团队
2021/07/12
2.6K0
Android 折叠屏适配攻略
随着三星 Galaxy Fold 和 华为 Mate X 的发布,折叠屏手机开始进入大家的视线。在改变手机体验的同时,也给我们开发人员在适配方面带来了更多的挑战。本文给大家介绍一下 Android 开发中和折叠屏相关的一些概念,以及如何进行折叠屏的适配。
NanBox
2019/07/16
3.5K0
Android 折叠屏适配攻略
Android Q新特性,一起来学习折叠屏应该如何适配
随着三星 Galaxy Fold 和 华为 Mate X 的发布,折叠屏手机开始进入大家的视线。在改变手机体验的同时,也给我们开发人员在适配方面带来了更多的挑战。本文给大家介绍一下 Android 开发中和折叠屏相关的一些概念,以及如何进行折叠屏的适配。
CCCruch
2019/07/18
2.2K0
Android Q新特性,一起来学习折叠屏应该如何适配
android刘海屏适配(刘海屏或圆角适配)
其中就加入了刘海屏相关的API。其相关行为与功能变更也是非常多的,从其变更的趋势及功能来看,google在进一步的收紧权限。
全栈程序员站长
2022/07/25
2.3K0
android刘海屏适配(刘海屏或圆角适配)
android状态栏样式修改
设置状态栏背景效果 package com.cy.translucentparent; import android.app.Activity; import android.os.Build; import android.view.View; import android.view.Window; import android.view.WindowManager; /** * Created by lenovo on 2017/4/25. */ public class Statu
再见孙悟空_
2023/02/10
6220
android状态栏样式修改
游戏优化系列一:海外谷歌应用适配相关
大家好,我叫Jack冯; 本人20年硕士毕业于广东工业大学,于2020年6月加入37手游安卓团队;目前主要负责海外游戏发行安卓相关开发。
37手游安卓团队
2020/12/02
10.7K0
游戏优化系列一:海外谷歌应用适配相关
提示大屏幕和折叠屏: 让您的 Android 游戏登上更大的舞台
让我们继续《让您的应用适配更多屏幕》中的话题,不过今天会更专注于游戏的范畴。在不久前的 GDC 上,我们很高兴能和大家分享多样化的设备为游戏体验带来的可能性。这些年我们亲历了诸多移动硬件的演进,如 3D 显示器和高分辨率屏幕等,也因为这些演进,让我们在应用商店中看到越来越多新颖的游戏出现,让玩家们在更沉浸的画面和游戏体验中流连忘返。
Android 开发者
2019/05/21
1.5K0
提示大屏幕和折叠屏: 让您的 Android 游戏登上更大的舞台
浅谈Android自定义锁屏页的发车姿势
一、为什么需要自定义锁屏页 锁屏作为一种黑白屏时代就存在的手机功能,至今仍发挥着巨大作用,特别是触屏时代的到来,锁屏的功用被发挥到了极致。多少人曾经在无聊的时候每隔几分钟划开锁屏再关上,孜孜不倦,其酸爽程度不亚于捏气泡膜。确实,一款漂亮的锁屏能为手机增色不少,但锁屏存在的核心目的主要是三个:保护自己手机的隐私,防止误操作,在不关闭系统软件的情况下节省电量。 当下,各个款式的手机自带的系统锁屏完全能够满足这些需求,而且美观程度非凡,那么开发者为什么仍然需要构建自定义锁屏呢?让我们试想一个场景,一位正在使用音乐
腾讯Bugly
2018/03/23
2.4K0
浅谈Android自定义锁屏页的发车姿势
Android 9.0系统新特性,对刘海屏设备进行适配
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
用户1158055
2019/11/28
9310
android 沉浸式状态栏的用法
好了废话不多说了,沉浸式状态栏现在已经非常普及了,不然请自行脑补一个画面(主题是蓝色的界面搭配白色,后来头顶冒出来一块红色的系统自带状态栏, 那画风。。。。)
胖虎哥
2023/05/10
6450
android 沉浸式状态栏的用法
关于 Android 中的各种 Bar 和“透明状态栏”的一些知识
其实这篇主要是讲解适配状态栏的,在这其中可能有些读者对状态栏(StatusBar)、ActionBar、ToolBar、TitleBar有点混淆或者感觉很混乱,所以就有了这其中的内容。
开发者
2019/12/26
2.9K0
关于 Android 中的各种 Bar 和“透明状态栏”的一些知识
华为EMUI多窗口模式适配指南
华为EMUI10.1的智慧分屏功能,多任务处理+应用分屏+悬浮窗口的设计让用户在操作时毫不费力,优化了人与机器的智慧交互体验,帮助用户大幅提升工作效率。如何让自己的应用快速适配,第一时间抢占新的应用入口呢?
软件绿色联盟
2022/03/31
1.6K0
华为EMUI多窗口模式适配指南
浅谈 Android 自定义锁屏页的发车姿势
一、为什么需要自定义锁屏页   锁屏作为一种黑白屏时代就存在的手机功能,至今仍发挥着巨大作用,特别是触屏时代的到来,锁屏的功用被发挥到了极致。多少人曾经在无聊的时候每隔几分钟划开锁屏再关上,孜孜不倦,其酸爽程度不亚于捏气泡膜。确实,一款漂亮的锁屏能为手机增色不少,但锁屏存在的核心目的主要是三个:保护自己手机的隐私,防止误操作,在不关闭系统软件的情况下节省电量。   当下,各个款式的手机自带的系统锁屏完全能够满足这些需求,而且美观程度非凡,那么开发者为什么仍然需要构建自定义锁屏呢?让我们试想一个场景,一位正在
QQ音乐技术团队
2018/01/31
4K0
浅谈 Android 自定义锁屏页的发车姿势
相关推荐
Android手机 全面屏(18:9屏幕)适配指南
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验