vip学员作业--横屏下面怎么自适应展示竖屏应用方案征集(排除原生letterbox方式)

本文主要是介绍vip学员作业--横屏下面怎么自适应展示竖屏应用方案征集(排除原生letterbox方式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景:

昨天相关的视频和公众号blog已经讲解了,横屏下如何正确显示竖屏app相关android原生的处理方案具体链接如下:
https://mp.weixin.qq.com/s/P95rN7dBOSCENc38KZ4Ulg
在这里插入图片描述

采用了原生letterbox即装相框模式画面变成如下:
在这里插入图片描述

letterbox上面画面确实实现了横屏情况下可以正常展示竖屏的app,但是真实使用起来也有比较多的问题

1、Activity虽然竖屏显示,但是底部画面可能显示不全

在这里插入图片描述

如上面的这个Activity,明显就底部压根没有显示,因为letterbox模式计算的宽高根本无法让Activity显示完全

2、部分Activity会显示异常,布局彻底乱,本质还是因为letterbox模式计算出来的App的bounds和正常的竖屏手机
屏幕大小还是有很大差异,哪怕bounds本身也是等比例的,对于app里面布局可能是一些写死的像素等

总结:
当前的原生letterbox确实一定程度上解决了竖屏app在横屏显示的问题,但实际上了各个应用后问题还是很多,特别是对各个app展示适配情况,一样有很多很多的ui显示问题。那么有没有更多方案来解决上面这个痛点呢

讨论和实践的作业

征集相关厂商修改方案

ps:完整方案投稿者有奖励或者新课程优惠
这个希望各位学员积极参与哈,这里大家不用拿自己厂商的方案分享害怕涉及泄密等,但是完全可以调研xxx竞品厂商的方案拿来分享,,大家懂的。
这里有条件的同学可以认真去尝试调研,有疑问等欢迎找马哥一起沟通,一起调研。

我这里可以给大家一些思路:

1、想一想在分屏pip自由窗口课程时候,自由窗口那么小的窗口是如何做到的布局显示正常,完美的使用,布局不乱

2、考虑考虑是否针对app的confiration进行hook修改,欺骗app让他以为是手机大小的竖屏

3、是否可以考虑多display相关方案,搞个手机竖屏的display?

以上是一些思路,大家可以朝一个方向努力,实现对这个痛点的解决,然后给出相关的成果秀

最后一句经典名言:
在这里插入图片描述

本文章更多详细代码和资料需要购买课程获取
hal+perfetto+surfaceflinger
https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg
在这里插入图片描述

私聊作者+v(androidframework007)

其他课程七件套专题:在这里插入图片描述
点击这里
https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw

视频试看:
https://www.bilibili.com/video/BV1wc41117L4/

这篇关于vip学员作业--横屏下面怎么自适应展示竖屏应用方案征集(排除原生letterbox方式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045898

相关文章

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty