Skip to main content

屏幕画布

全屏透明画布,坐标使用物理像素(与截图/找图坐标一致),适合在屏幕上标记找图结果、调试坐标等。

from ascript.android.ui import Canvas

创建与显示

canvas = Canvas()
canvas.show()

show() 默认阻塞等待初始化完成(wait=True),确保后续绘制不会丢失。

参数类型必须备注
offset_yintY轴偏移校准值(物理像素),默认自动使用状态栏高度

矩形

画矩形框,参数为左上角和右下角坐标。

Canvas.draw_rect(x1, y1, x2, y2, color="#ff00ff", stroke_width=2, duration=3000, label=None, font_size=12, id=None)
参数类型必须备注
x1, y1int左上角坐标(物理像素)
x2, y2int右下角坐标(物理像素)
colorstr线条颜色 默认:#ff00ff
stroke_widthint线条宽度 默认:2
durationint显示时长(毫秒),0为永久 默认:3000
labelstr矩形上方的标注文字
font_sizeint标注文字大小 默认:12
idstr唯一标识,可用于更新或移除
  • 返回值:id(str)

  • 示例

from ascript.android.ui import Canvas

canvas = Canvas()
canvas.show()

# 画一个矩形框
canvas.draw_rect(100, 200, 400, 500, color="#ff00ff", duration=5000, label="目标区域")

Canvas.draw_circle(x, y, radius, color="#00ff00", stroke_width=2, duration=3000, label=None, font_size=12, id=None)
参数类型必须备注
x, yint圆心坐标(物理像素)
radiusint半径(物理像素)
colorstr线条颜色 默认:#00ff00
stroke_widthint线条宽度 默认:2
durationint显示时长(毫秒) 默认:3000
labelstr标注文字
idstr唯一标识
  • 示例
canvas.draw_circle(540, 960, 50, color="#00ff00", label="找到")

线

Canvas.draw_line(x1, y1, x2, y2, color="#65db79", stroke_width=1, duration=3000, id=None)
参数类型必须备注
x1, y1int起点坐标
x2, y2int终点坐标
colorstr线条颜色 默认:#65db79
stroke_widthint线条宽度 默认:1
durationint显示时长(毫秒) 默认:3000
idstr唯一标识

文字

Canvas.draw_text(x, y, text, color="#ffffff", font_size=14, duration=3000, id=None)
参数类型必须备注
x, yint文字位置坐标
textstr文字内容
colorstr文字颜色 默认:#ffffff
font_sizeint字体大小 默认:14
durationint显示时长(毫秒) 默认:3000
idstr唯一标识

Canvas.draw_point(x, y, color="#ff0000", radius=5, duration=3000, id=None)
参数类型必须备注
x, yint坐标
colorstr颜色 默认:#ff0000
radiusint点的半径 默认:5
durationint显示时长(毫秒) 默认:3000
idstr唯一标识

十字标记

在指定坐标画十字标记,适合标记找图/找色的命中位置。

Canvas.draw_cross(x, y, size=30, color="#ff0000", stroke_width=2, duration=3000, label=None, font_size=12, id=None)
参数类型必须备注
x, yint十字中心坐标
sizeint十字臂长度 默认:30
colorstr颜色 默认:#ff0000
labelstr旁边的标注文字
idstr唯一标识
  • 示例
# 标记找图命中位置
canvas.draw_cross(320, 640, color="#ff0000", label="命中点")

箭头

画箭头,从起点指向终点,适合标记滑动方向。

Canvas.draw_arrow(x1, y1, x2, y2, color="#ffaa00", stroke_width=2, duration=3000, id=None)
参数类型必须备注
x1, y1int起点坐标
x2, y2int终点坐标(箭头方向)
colorstr颜色 默认:#ffaa00
stroke_widthint线条宽度 默认:2
durationint显示时长(毫秒) 默认:3000
idstr唯一标识
  • 示例
# 标记从左往右的滑动
canvas.draw_arrow(200, 500, 800, 500, color="#ffaa00", duration=2000)

区域标记

画半透明区域,适合标记找图/OCR的搜索范围。

Canvas.draw_region(x1, y1, x2, y2, color="#ff00ff", fill="rgba(255,0,255,0.15)", stroke_width=1, duration=3000, label=None, font_size=12, id=None)
参数类型必须备注
x1, y1int左上角坐标
x2, y2int右下角坐标
colorstr边框颜色 默认:#ff00ff
fillstr填充颜色(支持rgba透明度)默认:rgba(255,0,255,0.15)
labelstr标注文字
idstr唯一标识
  • 示例
# 标记识别区域
canvas.draw_region(0, 200, 1080, 800, color="#00ff00", label="搜索范围")

多边形

Canvas.draw_polygon(points, color="#00ffff", stroke_width=2, duration=3000, close=True, id=None)
参数类型必须备注
pointslist坐标列表,如 [(x1,y1),(x2,y2),...]
colorstr颜色 默认:#00ffff
closebool是否闭合 默认:True
idstr唯一标识
  • 示例
canvas.draw_polygon([(100,100), (300,50), (500,100), (400,300), (200,300)])

椭圆

参数为外接矩形的左上角和右下角。

Canvas.draw_oval(x1, y1, x2, y2, color="#00ff00", stroke_width=2, duration=3000, id=None)
参数类型必须备注
x1, y1int外接矩形左上角
x2, y2int外接矩形右下角
colorstr颜色 默认:#00ff00
stroke_widthint线条宽度 默认:2
durationint显示时长(毫秒) 默认:3000
idstr唯一标识

管理绘制对象

移除指定绘制

rid = canvas.draw_rect(100, 200, 400, 500)
canvas.remove(rid)

清除所有

canvas.clear()

关闭覆盖层

canvas.close()

完整示例

from ascript.android.ui import Canvas
import time

canvas = Canvas()
canvas.show()

# 标记搜索区域
canvas.draw_region(0, 200, 1080, 800, label="搜索区域", duration=5000)

# 标记命中位置
canvas.draw_cross(540, 500, color="#ff0000", label="命中", duration=5000)

# 标记滑动方向
canvas.draw_arrow(200, 960, 800, 960, duration=3000)

# 画一些辅助信息
canvas.draw_text(50, 150, "正在执行脚本...", color="#ffffff", font_size=16, duration=5000)

time.sleep(6)
canvas.close()