canvas是0.2.0版本新增的UI元素。功能类似于h5中的canvas功能,而在底层的实现上其实就是对CoreGraphics的封装。因此canvas能实现的功能范围就是CoreGraphics提供的功能。然而gic天生就支持动画,因此canvas也能支持动画。
canvas可以理解为一块画布,path是画布的唯一组成元素,但是你可以在path中添加如下5中元素。
point:单个点,作用仅仅是将当前点移动到该点。line:线条,你可以通过添加point的方式添加N调线条。arc:弧线,你可以利用arc画出扇形、圆形rectangle:矩形,支持圆角。甚至支持为四个圆角单独设置。bezier:贝塞尔曲线。path代表的是一组图形的路径,可以设置线条的颜色、线条的宽度、是否自动闭合线条、还有填充色。
| 名称 | 数据类型 | 介绍 | 是否支持绑定 | 是否支持动画 |
|---|---|---|---|---|
| line-color | UIColor | 线条颜色 | 是 | 是 |
| line-width | Float | 线条宽度,默认0.5 | 是 | 是 |
| close-lines | bool | 是否闭合线条。 | 是 | 是 |
| fill-color | UIColor | 填充色。如果不设置,那么不填充 | 是 | 是 |
| dash(0.2.2新增) | String | 虚线宽度和间距,以空格分隔。比如:4 1。那么表示虚线宽度为4,间隔为1 | 是 | 否 |
point以单独的点出现在path中的时候,只是用来将当前点移动到该位置的作用。而当作为line的子元素出现的时候就可以组成线条,依次连接各个点
| 名称 | 数据类型 | 介绍 | 是否支持绑定 | 是否支持动画 |
|---|---|---|---|---|
| x | Float | 支持百分比,比如:20% | 是 | 是 |
| y | Float | 支持百分比,比如:20% | 是 | 是 |
line本身没有任何的属性,完全是通过point子元素来实现组成线条的。
弧线。
| 名称 | 数据类型 | 介绍 | 是否支持绑定 | 是否支持动画 |
|---|---|---|---|---|
| center | Size | 中心点。支持百分比,比如50% | 是 | 是 |
| radius | Float | 半径。支持百分比,比如50%,在设置百分的时候,gic是按照宽度的百分比计算的。 |
是 | 是 |
| start-angle | Float | 起始的度数。比如:360、180 | 是 | 是 |
| end-angle | Float | 结束的度数。比如:360、180 | 是 | 是 |
| clockwise | Bool | 是否顺时针方向。默认false | 是 | 是 |
矩形。支持圆角
| 名称 | 数据类型 | 介绍 | 是否支持绑定 | 是否支持动画 | |
|---|---|---|---|---|---|
| x | Float | 起始的x点。支持百分比 | 是 | 是 | |
| y | Float | 起始的y点。支持百分比 | 是 | 是 | |
| width | Float | 宽度。支持百分比 | 是 | 是 | |
| height | Float | 高度。支持百分比 | 是 | 是 | |
| corner-types | Integer array(枚举) | 圆角的枚举。默认支持四个圆角。你可以使用空格分隔的方式添加对多个圆角的支持,类似于 ` | `运算 | 是 | 是 |
| corner-radius | size | 圆角大小。支持百分比 | 是 | 是 |
| 枚举值 | 对应枚举 | 说明 |
|---|---|---|
| 0 | UIRectCornerTopLeft | 左上角圆角 |
| 1 | UIRectCornerTopRight | 右上角圆角 |
| 2 | UIRectCornerBottomLeft | 左下角圆角 |
| 3 | UIRectCornerBottomRight | 右下角圆角 |
##bezier
贝塞尔曲线。
| 名称 | 数据类型 | 介绍 | 是否支持绑定 | 是否支持动画 |
|---|---|---|---|---|
| control-point | Point | 控制点1。支持百分比 | 是 | 是 |
| control-point2 | Point | 控制点2。支持百分比 | 是 | 是 |
| point | point | 点。支持百分比 | 是 | 是 |
基础
1 | <canvas height="100" background-color="yellow"> |

带动画的矩形报表(效果看下图)
1 | <canvas height="100" background-color="yellow"> |
吃豆人(效果看下图)
1 | <canvas height="100" background-color="yellow"> |
