Android全面屏适配(系转载自简书的yyBetter)

2023-05-16

全面屏  

因为做Android项目,用以前的适配状态栏的工具类已经不适用于目前流行的全面屏了,在网上找了几篇,认为这个是最简洁又快速的方法。(如果是图片适配的你可以自己找一下相关的东西,这里图片适配好像不太适用,你有需要也可以自己试试)

mix.png

小米mix(18:9屏幕)的出现标志的Android手机进入全面屏时代,这个非主流的尺寸确实带来了更多的观赏性。虽然现在看起来可能已经没有那么惊艳了,但是想想他刚出现的时候超大的视野,非凡的享受。

image.png

国产的Rom有的时候特别坑,但是在全面屏上,厂商基本上都会自己做适配。例如上图的华为手机。当我点击了全屏显示后。就会全屏显示。

错误:

网上大多数的适配都是在说修改应用配置文件AndroidManifest.xml中显式声明支持的最大屏幕高宽比(maximum aspect ratio)。但是此问题治标不治本。当屏幕的宽高比大于你设置的值后。还是会出现黑边。

正解:

targetSdkVersion 24

只要我们的targetSdkVersion > 24 ,就会支持全面屏。


沉浸式

支持了全面屏后我们一定要将屏幕内的每一寸空间全部利用起来。
1.状态栏
2.虚拟导航栏

想要开启状态栏和导航栏只需要在主题中开启两个属性。

 // 开启状态栏
 <item name="android:windowTranslucentStatus">true</item>  
 // 开启导航栏 
 <item name="android:windowTranslucentNavigation">true</item>

还有一个需要注意的就是

android:fitsSystemWindows=“true"

image.png

上图1 :开启了状态栏。
上图2 :开启了导航栏
上图3 :根布局开启

总结:

  • targetSdkVersion 决定能默认开启全面屏与侵入式
  • windowTranslucentStatus 决定是否在19以上开启顶部延伸
  • windowTranslucentNavigation 决定是否在19以上开启底部延伸
  • fitsSystemWindows 决定是否使用延伸布局。

建议:

  • targetSdkVersion 至少支持到26(8.0)
  • 顶部延展开启(例如图片等进入状态栏感官丰富)
  • 关闭底部navigation(避免与底部虚拟按钮冲突,国产rom多数会将底部的释放出来,实体按钮或者手势)



作者:yyBetter
链接:https://www.jianshu.com/p/5a599893f5fe
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android全面屏适配(系转载自简书的yyBetter) 的相关文章

  • angularJS绑定数据时自动转义html字符串

    angular js转换字符串形式的html标签 在保存数据到数据库的时候有些保存一个商品的描述数据 会直接保存这个文件描述中的一些html标签 当在数据库拿这个数据的时候用angular显示会直接字符串 显示下列这样 span class
  • 【K8S 一】使用kubeadm工具快速部署Kubernetes集群(单Master)

    此为安装部署单Master集群 xff0c 如需高可用Master集群 xff0c 请一并参考 K8S 五 使用kubeadm工具快速部署Kubernetes集群 Master高可用集群 目录 安装前配置 依赖包安装 kube proxy开
  • [Scala Shell脚本执行]

    Scala语言来自于Scalable xff08 可伸缩的 xff09 xff0c 既可以写一些小的脚本 xff0c 又可以写一写复杂的服务器端的程序 scala支持源文件解释执行 xff0c jar执行 xff0c 各有利弊 本文主要介绍
  • 全息投影技术

    1 概念 全息投影技术 xff08 front projectedholographic display xff09 也称 虚拟成像 技术是利用干涉和衍射原理记录并再现物体真实的 三维 图像的技术 全息投影技术不仅可以产生立体的空中幻像 x
  • Android Settings源码结构分析与自实现

    最近的项目一直是按照PRD与高清 xff0c 修改系统设置 xff0c 调整布局 间距 颜色 xff0c 涉及到一些流程的更改与自定义控件 xff0c 以及对settings源码结构的研究 在项目相对空闲是 xff0c 做个整理记录 由于项
  • 程序员的职业规划

    在这个节点讲讲我对职业发展路径的理解 xff0c 另外就是理一理脑子里的一些思路 过段时间再看此文又可能是另一番理解 很多路从后往前看的时候总会有遗憾 xff0c 要是当初怎么怎么样就会怎么怎么样 导致这样的原因的第一个原因是人在做决策的时
  • 深度思考Java成员变量的初始化

    写Java代码的时候很少去关注成员变量的声明和初始化顺序 xff0c 今天借此机会抛出一些问题 xff1a 语言的设计者们为什么会这样设计 xff1f 比如说很常见的一个问题 xff1a abstract xff08 抽象 xff09 类不
  • 生产者消费者模型(二)-引入ArrayBlockingQueue

    前言 在 生产者消费者模型你知道多少 中简单的模拟了一个生产者消费者模型 有些网友对我的实现提出了很多质疑 我在文章的结尾也对抛出了一个问题 xff1a 在添加的过程中可能出现数据丢失的情况 xff0c 应该怎么处理 xff1f 在代码中也
  • 存储系统的实现-探析存储的机制和原理

    这一篇主要想写写一些自己对于存储的思考和领悟 xff0c 因为有些东西自己实践过 xff0c 所以感触过更加深一些 xff0c 技术上我还是认为自己实现和看别人的代码在感触上是不同的 这里假设一个图书馆 xff0c 假如说书就是要我们要放的
  • 毕业四年

    直至目前毕业已经快四年 xff0c 我的经历代表了大多数普通程序员的经历 xff0c 没有牛人传奇的经历 xff0c 甚至连进入这个职业都是一种偶然 xff0c 只是因为分数不够被调剂到计算机专业 很多人可能会有和我一样的经历甚至一样的困惑
  • 最佳实践:AtomicInteger实现边界值控制

    最佳实践 xff1a AtomicInteger实现边界值控制 前言 这篇文章主要讲两部分 xff0c 一部分简单的讲了一下AtomicInteger和LongAdder的实现对比 xff0c 这部分不会讲太细 xff0c 因为有更好的文章
  • Java多线程并发锁和原子操作,你真的了解吗?

    前言 对于Java 多线程 xff0c 接触最多的莫过于使用synchronized xff0c 这个简单易懂 xff0c 但是这synchronized并非性能最优的 今天我就简单介绍一下几种锁 可能我下面讲的时候其实很多东西不会特别深刻
  • Huawei 鲲鹏(ARM/Aarch64)服务器安装kvm虚拟机

    硬件 类别 项目 要求 硬件 服务器 TaiShan 200服务器 xff08 型号2280 xff09 CPU 鲲鹏920处理器 RAID卡 Avago 3508 操作系统 项目 要求 银河麒麟 银河麒麟高级服务器操作系统V10 部署KV
  • 我的六年程序之路

    以前看刘未鹏的 我在南大的七年 xff0c 就在感叹每个人的人生迥异 和大牛之间的差距加重了我对自己的卑微 写下这篇日志一方面是为了记录我这和计算机的六年 xff0c 也是缅怀过去 xff0c 反思自己 或许大部分程序员有着一样的迷茫和困惑
  • 深入探析Java线程锁机制

    今天在iteye上提了一个关于 43 43 操作和线程安全的问题 xff0c 一位朋友的回答一言点醒梦中人 xff0c 至此我对Java线程锁有了更加深刻的认识 在这里也做个总结供大家参考 先看几段代码吧 xff01 代码一 xff1a p
  • 喇叭发声原理

    喇叭发声原理 音频设备中负责发出声音的核心部件是扬声器 xff0c 俗称喇叭 xff0c 无论是音响还是耳机 xff0c 其中都少不了这个关键部件 扬声器是一种把电信号转变为声信号的换能器件 喇叭 下面这个喇叭的侧视图能够很好的帮我们了解喇
  • win7 开WiFi共享

    创建 xff08 cmd xff09 xff1a netsh wlan set hostednetwork mode 61 allow ssid 61 user key 61 12345678 在网络连接 本地连接 属性 共享 xff1a
  • 《JAVA开发日常问题》一、修改IDEA路由代码不生效

    一 问题出现 1 重新启动过IDEA xff0c 没有关闭之前的项目 2 重新打开IDEA修改路由代码 xff0c 新增了个路由接口 xff0c 怎么访问都不成功不生效 二 问题排查 1 最开始百度了下 xff0c 说可以删除 idea文件
  • 数据仓库【实时数仓】

    目录 1 数据仓库简介 2 数据仓库的发展 3 数据仓库建设方法论 3 1 面向主题 3 2 为多维数据分析服务 3 3 反范式数据模型 4 数据仓库架构的演变 4 1 离线大数据架构 4 2 Lambda 架构 4 3 Kappa 架构
  • java.lang.IllegalStateException解决合集

    1 跑monkey时报错 xff0c 只定位到了是哪一个模块出的问题 xff0c 但没有定位代码位置 xff0c 大概是指Handler的问题 java lang IllegalStateException The specified me

随机推荐