$draw - 全屏绘制
- 更新时间:2026-02-08 19:43:39
全屏绘制
系统限制
在全局绘制框架中,绝大多数情况都会使用到全屏悬浮窗,但是这种方式在部分手机上用户手势会被拦截,这一类现象被称为"卡悬浮"。
经过测试,在MIUI系列的手机中,手机厂家会拦截悬浮窗手势,无论用何种悬浮窗类型,都无效,这是厂家在系统中刻下的基因。
全屏绘制类的函数:例如:绘制线、文本、方框等,在ColorOS下(或者大多数国产安卓模拟器),系统会提示是否允许显示在上层(安卓模拟器大多数默认允许),经过用户允许之后就可以正常绘制并且不阻碍用户使用手机, 但是在MIUI系统中,没有任何提示,经调试发现该类系统会直接拦截所有用户手势,据了解是为了安全才如此设计。
作为开发者,你必须谨慎使用全局绘制,并不是所有手机都开放了全屏悬浮窗时的触摸事件。
在1.8.0版本后,支持在root或者shizuku授权下,会自动尝试解锁卡悬浮,允许悬浮窗的触摸事件到达底层。
getPermit()
获取悬浮窗权限
- 返回 : {boolean} 是否有权限
- 版本 : 1.0.0
rect(rect)
绘制一个方框
- 参数 : rect {Rect} opencv的Rect对象
- 版本 : 1.0.0
rect(node)
绘制一个方框
- 参数 : node {Node} 节点信息
- 版本 : 1.0.0
rect(x, y, w, h)
绘制一个方框
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : w {int} 宽度
- 参数 : h {int} 高度
- 版本 : 1.0.0
rect(x, y, w, h, color)
绘制一个方框
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : w {int} 宽度
- 参数 : h {int} 高度
- 参数 : color {string} 颜色
- 版本 : 1.1.1
rect(x, y, w, h, ext)
绘制方框
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : w {int} 宽度
- 参数 : h {int} 高度
- 参数 : ext {int} 向四周拓展
- 版本 : 1.0.0
rect(x, y, w, h, ext, color)
绘制方框
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : w {int} 宽度
- 参数 : h {int} 高度
- 参数 : ext {int} 向四周拓展
- 参数 : color {string} 颜色
- 版本 : 1.1.0
rect(x, y, w, h, ext, color)
绘制方框
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : w {int} 宽度
- 参数 : h {int} 高度
- 参数 : ext {int} 向四周拓展
- 参数 : color {int} 颜色
- 版本 : 1.1.1
rect(arr, ext, color)
绘制方框
- 参数 : arr {int[]} 范围数组
- 参数 : ext {int} 向四周拓展
- 参数 : color {int} 颜色
- 版本 : 1.8.2
rect(arr, ext, color)
绘制方框
- 参数 : arr {int[]} 范围数组
- 参数 : ext {int} 向四周拓展
- 参数 : color {string} 颜色
- 版本 : 1.8.2
cross(point)
绘制一个十字准心
- 参数 : point {point} 位置
- 版本 : 1.0.0
cross(index)
绘制一个十字准心
- 参数 : index {int[]} 位置
- 版本 : 1.0.0
cross(node)
绘制一个十字准心
- 参数 : node {AccessibilityNodeInfo} 节点信息
- 版本 : 1.0.0
cross(node)
绘制一个十字准心
- 参数 : node {Node} 节点信息
- 版本 : 1.0.0
cross(x, y)
绘制一个十字准心
- 参数 : x {int} 中心x
- 参数 : y {int} 中心y
- 版本 : 1.0.0
cross(x, y, color)
绘制一个十字准心
- 参数 : x {int} 中心x
- 参数 : y {int} 中心y
- 参数 : color {string} 颜色
- 版本 : 1.1.0
cross(x, y, color)
绘制一个十字准心
- 参数 : x {int} 中心x
- 参数 : y {int} 中心y
- 参数 : color {int} 颜色值
- 版本 : 1.1.1
dot(index)
绘制一个点
- 参数 : index {int[]} 点
- 版本 : 1.0.0
dot(point)
绘制一个点
- 参数 : point {point} 点
- 版本 : 1.0.0
dot(x, y)
绘制一个点
- 参数 : x {int} 点x
- 参数 : y {int} 点y
- 版本 : 1.0.0
dot(x, y, color)
绘制一个点
- 参数 : x {int} 点x
- 参数 : y {int} 点y
- 参数 : color {string} 颜色
- 版本 : 1.0.0
dot(x, y, color)
绘制一个点
- 参数 : x {int} 点x
- 参数 : y {int} 点y
- 参数 : color {int} 颜色值
- 版本 : 1.1.1
text(text, x, y)
绘制文字
- 参数 : text {String} 文字
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 版本 : 1.0.0
text(text, x, y, size)
绘制文字
- 参数 : text {String} 文字
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : size {float} 字体大小
- 版本 : 1.0.0
text(text, x, y, size, color)
绘制文字
- 参数 : text {String} 文字
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : size {int} 字体大小
- 参数 : color {string} 颜色
- 版本 : 1.1.1
text(text, x, y, size, color)
绘制文字
- 参数 : text {String} 文字
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : size {int} 字体大小
- 参数 : color {int} 颜色值
- 版本 : 1.1.1
circle(x, y)
绘制一个圆形
半径默认为50像素
- 参数 : x {int} 圆心x
- 参数 : y {int} 圆心y
- 版本 : 1.1.1
circle(x, y, r)
绘制一个圆形
- 参数 : x {int} 圆心x
- 参数 : y {int} 圆心y
- 参数 : r {int} 圆形半径
- 版本 : 1.0.0
circle(x, y, r, ext)
绘制一个圆形
- 参数 : x {int} 圆心x
- 参数 : y {int} 圆心y
- 参数 : r {int} 圆形半径
- 参数 : ext {int} 圆形向四周拓展
- 版本 : 1.0.0
circle(x, y, r, ext, color)
绘制一个圆形
- 参数 : x {int} 圆心x
- 参数 : y {int} 圆心y
- 参数 : r {int} 圆形半径
- 参数 : ext {int} 圆形向四周拓展
- 参数 : color {string} 颜色
- 版本 : 1.0.0
circle(x, y, r, ext, color)
绘制一个圆形
- 参数 : x {int} 圆心x
- 参数 : y {int} 圆心y
- 参数 : r {int} 圆形半径
- 参数 : ext {int} 圆形向四周拓展
- 参数 : color {int} 颜色值
- 版本 : 1.1.1
img(img, x, y, w, h)
绘制图片
- 参数 : img {Image} 图片对象
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : w {int} 宽度(绘制后的图片宽度)
- 参数 : h {int} 高度(绘制后的图片宽度)
- 版本 : 1.1.0
line(x, y, toX, toY)
绘制一条线
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : toX {int} 目标x
- 参数 : toY {int} 目标y
- 版本 : 1.0.0
line(x, y, toX, toY, color)
绘制一条线
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : toX {int} 目标x
- 参数 : toY {int} 目标y
- 参数 : color {string} 颜色
- 版本 : 1.1.1
line(x, y, toX, toY, color)
绘制一条线
- 参数 : x {int} 起点x
- 参数 : y {int} 起点y
- 参数 : toX {int} 目标x
- 参数 : toY {int} 目标y
- 参数 : color {int} 颜色值
- 版本 : 1.1.1
path(data)
绘制路径,传入的就是x和y的数组
- 参数 : data {int[][]} 二维数组,第二维数组是坐标
- 版本 : 1.0.0
path(data, color)
绘制路径,传入的就是x和y的数组
- 参数 : data {int[][]} 二维数组,第二维数组是坐标
- 参数 : color {string} 颜色
- 版本 : 1.1.1
path(data, color)
绘制路径,传入的就是x和y的数组
- 参数 : data {int[][]} 二维数组,第二维数组是坐标
- 参数 : color {int} 颜色值
- 版本 : 1.1.1
i(text, x, y, size)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
i(text, x, y)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
i(text)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
d(text, x, y, size)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
d(text, x, y)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
d(text)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
w(text, x, y, size)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
w(text, x, y)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
w(text)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
e(text, x, y, size)
绘制日志文字
- 参数 : text {String} 文字
- 参数 : x {float} 字体大小
- 版本 : 1.0.0
e(text, x, y)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
e(text)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
v(text, x, y, size)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
v(text, x, y)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
v(text)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
log(text, color, x, y, size)
绘制日志文字
- 参数 : text {String} 文字
- 参数 : color {String} 颜色
- 参数 : x {int} 位置x
- 参数 : y {int} 位置y
- 参数 : size {float} 字体大小
- 版本 : 1.0.0
log(text, color, x, y)
绘制日志文字
- 参数 : text {String} 文字
- 参数 : color {String} 颜色
- 参数 : x {int} 位置x
- 参数 : y {int} 位置y
- 版本 : 1.0.0
log(text, color)
绘制日志文字
- 参数 : text {String} 文字
- 参数 : color {String} 颜色
- 版本 : 1.0.0
log(text)
绘制日志文字
- 参数 : text {String} 文字
- 版本 : 1.0.0
log(text, x, y)
绘制日志文字
- 参数 : text {String} 文字
- 参数 : x {int} 位置x
- 参数 : y {int} 位置y
- 版本 : 1.0.0
closeAll()
关闭绘制日志的悬浮窗
- 版本 : 1.0.0
closeAll(delay)
关闭绘制日志的悬浮窗
- 参数 : delay {long} 延迟关闭时间
- 版本 : 1.0.0
closeLog(delay)
关闭绘制日志的悬浮窗
- 参数 : delay {long} 延迟关闭时间
- 版本 : 1.0.0
closeLog()
关闭绘制日志的悬浮窗
- 版本 : 1.0.0
clear()
清空所有绘制
清空绘制本质上也是绘制的一种,因此它和其他绘制函数一样,会优先判断当前悬浮窗是否开启, 如果悬浮窗没有开启,则创建一个全局悬浮窗至于屏幕最上层,之后绘制透明颜色以达到清空的效果。
如果你已经绘制过图案了,那么此时是存在顶层悬浮窗的,调用次函数的时候会直接绘制透明颜色以达到清空的效果。
如果你不理解什么是绘制透明颜色,可以理解为:画布中的橡皮擦(本质上是把橡皮经过的位置绘制成透明颜色)
- 版本 : 1.6.8