$screen - 屏幕操作

  • 更新时间:2025-12-13 11:58:46

屏幕操作

获取权限()

获取截屏权限

如果支持无障碍截屏的话,会直接返回true,否则就会阻塞线程来获取录屏权限,直到获取到为止。

需要注意的是:安卓15+的用户在获取录屏权限的时候记得选中整个屏幕选项,而不是单个当前应用截屏。

  • 返回 : {布尔值} 是否获取成功

  • 版本 : 1.7.0

//等待获取截屏权限
$屏幕.获取权限();

获取权限一次()

获取截屏权限一次

  • 版本 : 1.7.0

//获取截屏权限一次
$屏幕.获取权限一次();

有录屏权限()

判断是否有录屏权限

这个方法只会判断是否有录屏权限,不会判断无障碍截屏是否可用

  • 返回 : {布尔值} 是否有录屏权限

  • 版本 : 1.7.4

如果($屏幕.有录屏权限()){
    日志("有录屏权限");
}

只用录屏权限(只用录屏权限)

只用录屏权限

默认是false,即默认优先使用无障碍截屏,后用录屏权限截屏。 如果设置为true,那么判断是否有权限的函数只会判断录屏权限是否可用,不会判断无障碍截屏是否可用。并且获取截屏的时候只会通过录屏权限获取截屏。

  • 参数 : 只用录屏权限 {布尔值} 是否只用录屏权限

  • 版本 : 1.7.4

//设置只使用录屏权限获取截屏
$屏幕.只用录屏权限();

有截屏权限()

是否有截屏权限

  • 返回 : {布尔值} 是否有截屏权限

  • 版本 : 1.7.0

如果($屏幕.有截屏权限()){
    日志("有截屏权限");
}

获取截屏()

获取屏幕截屏

此函数将优先使用无障碍截屏(安卓11+),否则将使用截屏权限来进行截屏。

  • 返回 : {Image} 截屏图片

  • 版本 : 1.7.0

//等待获取截屏权限
$屏幕.获取权限();
//如果不想用上面的方式,也可以使用 $动作.获取权限(); //获取无障碍,也可以截屏(安卓11+以上才行)
定义 图片 = $屏幕.获取截屏();//获得屏幕截屏
$图片.显示(图片);//显示截屏

设置亮度(亮度)

设置屏幕亮度

  • 参数 : 亮度 {整数} 亮度值(0-255)

  • 版本 : 1.7.0

//设置屏幕亮度
$屏幕.设置亮度(100);

设置方向(角度)

设置屏幕方向

  • 参数 : 角度 {字符串} 屏幕旋转度数

  • 版本 : 1.7.0

//设置屏幕方向
$屏幕.设置方向(0);//(强制)竖屏
$屏幕.设置方向(90);//(强制)右转横屏
$屏幕.设置方向(180);//(强制)倒置竖屏
$屏幕.设置方向(270);//(强制)左转横屏
$屏幕.设置方向(-1);//(不强制)自动旋转(任何其他数字都是自动旋转)
// 模拟器测试:
// 逍遥     安卓5  : 成功旋转屏幕 会闪退
// 逍遥     安卓7  : 成功旋转屏幕 会闪退
// 逍遥     安卓9  : 成功旋转屏幕 会闪退
// 逍遥     安卓12 : 完美!!!
// 雷电     安卓9  : 毫无反应
//真机测试:
// OPPO    安卓12 : 完美!!!

获取高度()

屏幕高

该方法会先获取屏幕的所有信息,之后再反馈屏幕高度。

  • 返回 : {整数} 屏幕高度

  • 版本 : 1.7.0

定义 宽 = $屏幕.获取宽度();
定义 高 = $屏幕.获取高度();
提示("屏幕宽高",+"x"+);

获取宽度()

屏幕宽

该方法会先获取屏幕的所有信息,之后再反馈屏幕宽度。

  • 返回 : {整数} 屏幕宽度

  • 版本 : 1.7.0

定义 宽 = $屏幕.获取宽度();
定义 高 = $屏幕.获取高度();
提示("屏幕宽高",+"x"+);

获取屏幕信息()

屏幕信息

该方法会获取屏幕的所有信息。

  • 返回 : {ScreenInfo} 屏幕宽高信息

  • 版本 : 1.7.0

定义 屏幕信息 = $屏幕.获取屏幕信息();//等价于:'$屏幕.信息()'
提示("详细信息",屏幕信息);

信息()

屏幕信息

该方法会获取屏幕的所有信息。

  • 返回 : {ScreenInfo} 屏幕宽高信息

  • 版本 : 1.7.0

定义 信息 = $屏幕.信息();//等价于:'$屏幕.获取屏幕信息()'
提示("详细信息",信息);

获取密度因子()

获取密度

获取屏幕的密度因子

  • 返回 : {小数} 密度因子

  • 版本 : 1.7.0

定义 密度因子 = $屏幕.获取密度因子();
提示("当前设备的密度",密度因子);

是息屏的()

判断屏幕是否息屏

  • 返回 : {布尔值} 是否息屏

  • 版本 : 1.7.0

如果($屏幕.是息屏的()){
    日志("屏幕息屏");
}

是亮屏的()

判断屏幕是否亮屏

  • 返回 : {布尔值} 是否亮屏

  • 版本 : 1.7.0

如果($屏幕.是亮屏的()){
    日志("屏幕亮屏");
}

分割(横向分割数量, 纵向分割数量, 索引)

屏幕分割

将屏幕进行横向和纵向的分割,返回指定索引的范围,该函数对于制作全分辨率脚本非常有用。

  • 参数 : 横向分割数量 {整数} 横向分割数量

  • 参数 : 纵向分割数量 {整数} 纵向分割数量

  • 参数 : 索引 {整数} 块的索引

  • 返回 : {Rect} 范围

  • 版本 : 1.7.0

$绘制.关闭所有();
//将屏幕分割成9份,找到最后一份的范围
定义 范围 = $屏幕.分割(3, 3, 8);
//绘制出这个范围
$绘制.方框(范围);

保存截屏(保存路径)

截屏并保存

该函数会直接截屏(需要截屏权限或者无障碍权限),之后保存截屏到指定的路径。

  • 参数 : 保存路径 {字符串} 保存路径

  • 版本 : 1.7.0

//截屏并且保存(支持相对路径写法)
定义 截屏路径 = "/sdcard/Pictures/截屏.png";
$屏幕.保存截屏(截屏路径);

强制竖屏()

强制竖屏截屏

一般情况下用不到该函数,但是确实存在少量设备存在横竖屏异常,此函数就是为了应对特殊情况的。

  • 版本 : 1.7.0

$屏幕.强制竖屏();//强制竖屏截屏

强制横屏()

强制横屏截屏

一般情况下用不到该函数,但是确实存在少量设备存在横竖屏异常,此函数就是为了应对特殊情况的。

  • 版本 : 1.7.0

$屏幕.强制横屏();//强制横屏截屏

取消强制()

取消强制横竖屏

默认情况下,'$屏幕'会根据当前屏幕状态自动检测截屏是横屏还是竖屏,所以一般情况下 '强制竖屏'、'强制横屏'、'取消强制'这三个函数没必要调用。 之所以设计这三个函数,是为了更好的适配更多的设备,正常情况下手机的宽度都是小于高度的,但是也有那种宽度大于高度的情况,例如:平板设备,此时就可以使用强制横屏或竖屏来截屏了。

  • 版本 : 1.7.0

$屏幕.取消强制();//取消强制横竖屏(默认是:自动检测)