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

29 篇文章 17 订阅

背景:

昨天相关的视频和公众号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/

要实现Python YOLOv5幕捕捉识别,你可以按照以下步骤进行操作: 1. 首先,安装所需库和模型。你需要安装`OpenCV`、`Numpy`、`PyTorch`,并且从YOLOv5的GitHub仓库下载模型文件。 2. 导入所需的库和模型代码。使用以下代码导入所需的库和模型代码: ```python import cv2 import numpy as np import torch from models import * from utils.datasets import * from utils.utils import * ``` 3. 加载YOLOv5模型。使用以下代码加载YOLOv5模型: ```python model = attempt_load('yolov5s.pt', map_location=torch.device('cpu')) ``` 4. 读取幕捕捉图像。使用以下代码读取幕捕捉图像: ```python screen = cv2.imread('screen.jpg') ``` 5. 运行YOLOv5模型进行目标检测。使用以下代码运行YOLOv5模型进行目标检测,并获得检测结果: ```python img = letterbox(screen, new_shape=640)[0] img = img[:, :, ::-1].transpose(2, 0, 1) img = np.ascontiguousarray(img) img = torch.from_numpy(img).unsqueeze(0) img = img.float() / 255.0 pred = model(img, augment=False)[0] pred = non_max_suppression(pred, conf_thres=0.5, iou_thres=0.5)[0] ``` 6. 处理检测结果。使用以下代码处理检测结果,并将目标框和类别标签绘制到图像上: ```python for det in pred: if len(det): det[:, :4] = scale_coords(img.shape[2:], det[:, :4], screen.shape).round() for *xyxy, conf, cls in reversed(det): label = f'{names[int(cls)]} {conf:.2f}' plot_one_box(xyxy, screen, label=label, color=colors[int(cls)], line_thickness=3) ``` 7. 显示结果。使用以下代码显示处理后的图像结果: ```python cv2.imshow('Screen Capture Detection', screen) cv2.waitKey(0) cv2.destroyAllWindows() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值