autojs横屏截图的正确姿势

简介: 牙叔教程 简单易懂

牙叔教程 简单易懂

测试环境

模拟器: 雷电模拟器, android7.1.2

autojs: 8.8.22

测试代码

if (!requestScreenCapture(true)) {
  toast("请求截图失败");
  exit();
}
sleep(3000);
var img = captureScreen();
log("img.width: " + img.width + " img.height: " + img.height);
img.recycle();
log("device.width = " + device.width + " device.height = " + device.height);


测试方法1: 模拟器竖屏状态

img.width: 960 img.height: 540
device.width = 540 device.height = 960


测试方法2: 模拟器横屏状态

img.width: 960 img.height: 540
device.width = 540 device.height = 960


测试方法3: 模拟器竖屏状态申请截图

然后3秒内点击游戏, 模拟器变为横屏

img.width: 960 img.height: 540
device.width = 540 device.height = 960


横屏截图期望

截图的宽度是手机屏幕的高度, 方便以横屏的坐标系, 来计算坐标

以上三种测试方法, 均满足图片的宽度是屏幕的高度, 这一条件;

不同的地方是什么?

截图时的模拟器处于横屏还是竖屏

申请截图权限时模拟器状态

截图时的模拟器状态

测试方法1

竖屏

竖屏

测试方法2

横屏申请, 强制变为竖屏

竖屏

测试方法3

竖屏

横屏

真机测试结果

测试环境

真机: 小米11pro

安卓: 12

miui: 13.0.9

申请截图时, 不管有没有打开游戏, 屏幕方向始终不变:

是横屏就始终是横屏, 是竖屏就始终是竖屏

横竖屏日志都是一模一样的


img.width: 3200 img.height: 1440
device.width = 1440 device.height = 3200
img.width: 3200 img.height: 1440
device.width = 1440 device.height = 3200
img.width: 3200 img.height: 1440
device.width = 1440 device.height = 3200


总结

为了兼容真机和模拟器, 申请截图权限时, 统一使用使用方法3,

先在竖屏时申请截图权限, 获取截图权限后, 再打开游戏截图,

此时, 坐标系就是横屏的, 截图也是横屏的,

可以按照直觉来计算坐标

名人名言


思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程


声明


部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

相关文章
|
Android开发
autojs最近任务多界面
牙叔教程 简单易懂
551 0
autojs普通版控制台美化
autojs普通版控制台美化
746 0
|
监控 Android开发 iOS开发
Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮
Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮
106 0
|
移动开发 JavaScript Android开发
iOS12网页视频播放点击全屏按钮会导致闪退
iOS12网页视频播放点击全屏按钮会导致闪退
257 0
|
Android开发
autojs进度条
牙叔教程 简单易懂
461 0
|
Android开发
autojs状态栏歌词
牙叔教程 简单易懂
223 0
|
缓存 Android开发
autojs放大镜
autojs放大镜
244 0
|
XML JavaScript 数据格式
autojs之启动页
启动页概念 启动页包括开屏页和广告页, 桌面点击app, 你看见的第一个页面就是开屏页; 开屏页后面可以显示广告页, 也可以不显示 本节教程针对开屏页
575 0
autojs之启动页
autojs之悬浮窗, 给我待在屏幕里面
使用场景: 令悬浮窗始终在屏幕之内
1305 0
autojs之悬浮窗, 给我待在屏幕里面
|
前端开发 测试技术 Android开发
autojs点赞按钮动画
牙叔教程 简单易懂
215 0