ATX atx uiautomator2 插件:带刘海的截图

codeskyblue · 2018年09月10日 · 最后由 Boxer 回复于 2018年12月29日 · 3755 次阅读

背景

目前来说带刘海的手机还不少,有点丑啊,不仅苦了给这种手机做适配的程序员们,还苦了我们这些做自动化工具的人。(吐槽完毕)

系统截图不带刘海,反正不了真实的情况。

刘海屏截图

刘海屏的截图出来的并没有刘海,而是一个完整的长方形图。

比如这台小米 8 的手机,我们看到的是这样的

但是系统的截图却是完美无瑕的。如下图

为了方便自动化的过程中的截图跟实际的效果一致,这里做了一个 uiautomator2 的插件来专门适配刘海屏的截图
效果如下(还凑合吧 _

原理

插件用的是 Pillow 来画的图,四周画圆弧,屏幕上方用直线画刘海。画图的时候需要注意屏幕的旋转。
画图的时间大概 0.4s,应该还有些改进空间。用 OpenCV 画图或许会更快点吧。

代码

插件代码 https://gist.github.com/codeskyblue/c8b8e5598e56062ba93340f5b089ce28

其他说明

因为目前手里只有小米 8,所以只做了小米 8 的适配。

如果希望代码支持你的刘海屏手机,留言,提供下下面几个参数即可。

  1. 刘海屏的高度,宽度(px)
  2. 两个 prop 的参数
adb shell getprop ro.product.brand
adb shell getprop ro.product.model
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 3 条回复 时间 点赞

有必要在截图的地方处理吗?显示的时候再处理不就好了......

心向东 回复

我比较倾向于截图直接处理,这样直接双击图片就能看了,而不用依赖一些前端技术

仅楼主可见
codeskyblue 专栏文章:2018年 终总结 中提及了此贴 02月18日 10:26
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册