- Global - 全局对象
- Automator - 自动化
- AutoJs6 - 本体应用
- App - 通用应用
- Color - 颜色
- Image - 图像
- OCR - 光学字符识别
- Barcode - 条码
- QR Code - 二维码
- Keys - 按键
- Device - 设备
- Storage - 储存
- File - 文件
- Engine - 引擎
- Task - 任务
- Module - 模块
- Plugins - 插件
- Toast - 消息浮动框
- Notice - 消息通知
- Console - 控制台
- Shell
- Shizuku
- Media - 多媒体
- Sensor - 传感器
- Recorder - 记录器
- Timer - 定时器
- Thread - 线程
- Continuation - 协程
- Event - 事件监听
- Dialog - 对话框
- Floaty - 悬浮窗
- Canvas - 画布
- UI - 用户界面
- Web - 万维网
- HTTP
- Base64
- Crypto - 密文
- OpenCC - 中文转换
- Internationalization - 国际化
- Standardization - 标准化
- E4X
- UiSelector - 选择器
- UiObject - 控件节点
- UiObjectCollection - 控件集合
- UiObjectActions - 控件节点行为
- WebSocket
- EventEmitter - 事件发射器
- ImageWrapper - 包装图像类
- App - 应用枚举类
- Color - 颜色类
- Version - 版本工具类
- Polyfill - 代码填泥
- Arrayx - Array 扩展
- Numberx - Number 扩展
- Mathx - Math 扩展
- Glossaries - 术语
- HttpHeader - HTTP 标头
- HttpRequestMethods - HTTP 请求方法
- MimeType - MIME 类型
- NotificationChannel - 通知渠道
- Data Types - 数据类型
- Omnipotent Types - 全能类型
- Storage - 存储类
- AndroidBundle
- AndroidRect
- CryptoCipherOptions
- CryptoKey
- CryptoKeyPair
- ConsoleBuildOptions
- HttpRequestBuilderOptions
- HttpRequestHeaders
- HttpResponseBody
- HttpResponseHeaders
- HttpResponse
- InjectableWebClient
- InjectableWebView
- NoticeOptions
- NoticeChannelOptions
- NoticePresetConfiguration
- NoticeBuilder
- Okhttp3HttpUrl
- OcrOptions
- Okhttp3Request
- OpenCVPoint
- OpenCVRect
- OpenCVSize
- OpenCCConversion
AutoJs6 文档 - 6.6.4
目录
- 画布 (Canvas)
- canvas.getWidth()
- canvas.getHeight()
- canvas.drawRGB(r, int g, int b)
- canvas.drawARGB(a, r, g, b)
- canvas.drawColor(color)
- canvas.drawColor(color, mode)
- canvas.drawPaint(paint)
- canvas.drawPoint(x, y, paint)
- canvas.drawPoints(pts, paint)
- canvas.drawLine(startX, startY, stopX, stopY, paint)
- canvas.drawRect(r, paint)
- canvas.drawRect(left, top, right, bottom, android.graphics.Paint paint)
- canvas.drawOval(android.graphics.RectF oval, android.graphics.Paint paint)
- canvas.drawOval(float left, float top, float right, float bottom, android.graphics.Paint paint)
- canvas.drawCircle(float cx, float cy, float radius, android.graphics.Paint paint)
- canvas.drawArc(android.graphics.RectF oval, float startAngle, float sweepAngle, boolean useCenter, android.graphics.Paint paint)
- canvas.drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, android.graphics.Paint paint)
- canvas.drawRoundRect(android.graphics.RectF rect, float rx, float ry, android.graphics.Paint paint)
- canvas.drawRoundRect(float left, float top, float right, float bottom, float rx, float ry, android.graphics.Paint paint)
- canvas.drawPath(android.graphics.Path path, android.graphics.Paint paint)
- canvas.drawBitmap(android.graphics.Bitmap bitmap, float left, float top, android.graphics.Paint paint)
- canvas.drawText(java.lang.String text, float x, float y, android.graphics.Paint paint)
- canvas.drawTextOnPath(java.lang.String text, android.graphics.Path path, float hOffset, float vOffset, android.graphics.Paint paint)
- canvas.translate(dx, dy)
- canvas.scale(sx, sy)
- canvas.scale(float sx, float sy, float px, float py)
- canvas.rotate(float degrees)
- canvas.rotate(float degrees, float px, float py)
- canvas.skew(float sx, float sy)
- 画笔
- 变换矩阵
- 路径
- Porter-Duff操作
- 着色器
- 遮罩过滤器
- 颜色过滤器
- 路径特效
- 区域
画布 (Canvas)#
此章节待补充或完善...
Marked by SuperMonster003 on Oct 22, 2022.
canvas提供了使用画布进行2D画图的支持, 可用于简单的小游戏开发或者图片编辑. 使用canvas可以轻松地在一张图片或一个界面上绘制各种线与图形.
canvas的坐标系为平面直角坐标系, 以控件左上角为原点, 控件上边沿为x轴正方向, 控件左边沿为y轴正方向. 例如分辨率为1920*1080的屏幕上, canvas控件覆盖全屏, 画一条从屏幕左上角到屏幕右下角的线段为:
canvas.drawLine(0, 0, 1080, 1920, paint);
canvas的绘制依赖于画笔Paint, 通过设置画笔的粗细、颜色、填充等可以改变绘制出来的图形. 例如绘制一个红色实心正方形为:
var paint = new Paint();
//设置画笔为填充, 则绘制出来的图形都是实心的
paint.setStyle(Paint.STYLE.FILL);
//设置画笔颜色为红色
paint.setColor(colors.RED);
//绘制一个从坐标(0, 0)到坐标(100, 100)的正方形
canvas.drawRect(0, 0, 100, 100, paint);
如果要绘制正方形的边框, 则通过设置画笔的Style来实现:
var paint = new Paint();
//设置画笔为描边, 则绘制出来的图形都是轮廓
paint.setStyle(Paint.STYLE.STROKE);
//设置画笔颜色为红色
paint.setColor(colors.RED);
//绘制一个从坐标(0, 0)到坐标(100, 100)的正方形
canvas.drawRect(0, 0, 100, 100, paint);
结合画笔, canvas可以绘制基本图形、图片等.
canvas.getWidth()#
- 返回 { number }
返回画布当前图层的宽度.
canvas.getHeight()#
- 返回 { number }
返回画布当前图层的高度.
canvas.drawRGB(r, int g, int b)#
将整个可绘制区域填充为r、g、b指定的颜色. 相当于 canvas.drawColor(colors.rgb(r, g, b))
.
canvas.drawARGB(a, r, g, b)#
将整个可绘制区域填充为a、r、g、b指定的颜色. 相当于 canvas.drawColor(colors.argb(a, r, g, b))
.
canvas.drawColor(color)#
color
{ number } 颜色值
将整个可绘制区域填充为color指定的颜色.
canvas.drawColor(color, mode)#
color
{ number } 颜色值mode
{ PorterDuff.Mode } Porter-Duff操作
将整个可绘制区域填充为color指定的颜色.
canvas.drawPaint(paint)#
paint
{ Paint } 画笔
将整个可绘制区域用paint指定的画笔填充. 相当于绘制一个无限大的矩形, 但是更快. 通过该方法可以绘制一个指定的着色器的图案.
canvas.drawPoint(x, y, paint)#
在可绘制区域绘制由坐标(x, y)指定的点. 点的形状由画笔的线帽决定(参见paint.setStrokeCap(cap)). 点的大小由画笔的宽度决定(参见paint.setStrokeWidth(width)).
如果画笔宽度为0, 则也会绘制1个像素至4个(若抗锯齿启用).
相当于 canvas.drawPoints([x, y], paint)
.
canvas.drawPoints(pts, paint)#
pts
{ Array} 点坐标数组 [x0, y0, x1, y1, x2, y2, ...] paint
{ Paint } 画笔
在可绘制区域绘制由坐标数组指定的多个点.
canvas.drawLine(startX, startY, stopX, stopY, paint)#
在可绘制区域绘制由起点坐标(startX, startY)和终点坐标(endX, endY)指定的线. 绘制时会忽略画笔的样式(Style). 也就是说, 即使样式设为“仅填充(FILL)”也会绘制. 退化为点的线(长度为0)不会被绘制.
canvas.drawRect(r, paint)#
r
{ Rect } 矩形边界paint
{ Paint } 画笔
在可绘制区域绘制由矩形边界r指定的矩形. 绘制时画笔的样式(Style)决定了是否绘制矩形界线和填充矩形.
canvas.drawRect(left, top, right, bottom, android.graphics.Paint paint)#
在可绘制区域绘制由矩形边界(left, top, right, bottom)指定的矩形. 绘制时画笔的样式(Style)决定了是否绘制矩形界线和填充矩形.
canvas.drawOval(android.graphics.RectF oval, android.graphics.Paint paint)#
canvas.drawOval(float left, float top, float right, float bottom, android.graphics.Paint paint)#
canvas.drawCircle(float cx, float cy, float radius, android.graphics.Paint paint)#
canvas.drawArc(android.graphics.RectF oval, float startAngle, float sweepAngle, boolean useCenter, android.graphics.Paint paint)#
canvas.drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, android.graphics.Paint paint)#
canvas.drawRoundRect(android.graphics.RectF rect, float rx, float ry, android.graphics.Paint paint)#
canvas.drawRoundRect(float left, float top, float right, float bottom, float rx, float ry, android.graphics.Paint paint)#
canvas.drawPath(android.graphics.Path path, android.graphics.Paint paint)#
canvas.drawBitmap(android.graphics.Bitmap bitmap, float left, float top, android.graphics.Paint paint)#
canvas.drawText(java.lang.String text, float x, float y, android.graphics.Paint paint)#
canvas.drawTextOnPath(java.lang.String text, android.graphics.Path path, float hOffset, float vOffset, android.graphics.Paint paint)#
canvas.translate(dx, dy)#
平移指定距离.
canvas.scale(sx, sy)#
以原点为中心, 将坐标系平移缩放指定倍数.