画板类实例讲解

作者:创世魂

 

● 本类说明

 

本类的主要作用就是用来进行各种各样的绘制操作。

注意:本类位于“安卓基本类”模块中,必须添加此模块才能使用。

 

 

● 填充

 

帮助文档如下图:

本方法支持动态调用,有两个参数。

参数1:填写要操作的“画板类”,动态调用时“参数1不写”

参数2:填写定义的“画笔类”变量。

本方法的作用,就是在画板内绘制一个无限大的矩形,但是比“画矩形”方法要快。

如果当前画板没有设置当前剪裁区域,则会填充全部。

 

代码编写如下图:

直接在“异步绘制帧”事件下,利用“画板对象”参数去调用本方法,参数直接填写定义的“画笔”变量即可。

 

运行效果如下图:

可以看到执行“按钮1”后,整个画板变成了“白色”

这是因为定义的“画笔变量”“颜色”属性设置的是白色。

 

 

● 填充颜色

 

帮助文档如下图:

本方法支持动态调用,可以看到有两个参数,参数1依旧是要操作的“画板类”

参数2:填写要填充的颜色值,可以使用“颜色类”中定义的常量。

也可以使用“0xFF”加十六进制的颜色值。

填充的颜色会覆盖其它形式填充的颜色或位图。

如果没有设置“剪裁区域”,则会填充全部。

 

代码编写如下图:

直接在“异步绘制帧”下利用“画板对象”调用本方法即可。

 

运行效果如下图:

执行“按钮1”后,整个画板会变成设置的“黄色”

 

 

● 填充颜色2

 

帮助文档如下图:

本方法和“填充颜色”不同之处就是多了一个“图像混合方式”

“图像混合方式”是一种数字图像合成算法,内置了多种常量可供调用,知道即可无需深入了解。

可以指定填充时混合方式,调用方式“图像混合方式.XXXX”

 

代码编写如下图:

首先执行一次“填充颜色”,填充红色。

随后利用本方法,填充蓝色,并且指定“图像混合方式.添加”

 

运行效果如下图:

运行程序后,最终显示的颜色不是红色也不是蓝色。

而是变成了两种颜色相加的颜色。

 

 

● 填充颜色3

 

帮助文档如下图:

本方法颜色填充算法采用的是“源图像覆盖”方式。

使用本方法填充颜色,支持“透明度”设置和“红黄蓝”三种颜色的单独设置。最大值255,最小值0.

 

代码编写如下图:

例如:全部填写255就可以进行不透明的白色填充。

 

运行效果如下图:

点击“按钮1”后画板就会变成白色。

 

 

● 填充颜色4

 

帮助文档如下图:

本方法同样支持动态调用,和“填充颜色3”不同之处就是,本方法不支持设定透明度。

 

代码编写如下图:

例如:参数全部填写255,就是填充白色。

如果全部填写0,就表示填充黑色。

 

 

● 画文本

 

帮助文档如下图:

本方法支持动态调用,有五个参数。

绘制的文本对齐方式,根据“文本对齐方式”属性进行设置,默认是左对齐。

参数中的“横坐标”表示文本距离“左边”的位置。“纵坐标”表示距离“顶边”的位置。

 

代码编写如下图:

“画笔”变量的颜色属性,支持直接设置“颜色类”中的颜色常量。

“字体尺寸”属性,可以设置绘制文本的字体大小。

直接在“异步绘制帧”中调用本方法,给参数分别填入对应的数据。

 

运行效果如下图:

执行“按钮1”后,画板上就会出现“火山软件开发平台”,并且颜色是白色。

左边和顶边的距离,也都是参数内填写的距离。

 

 

● 画文本区间

 

帮助文档如下图:

本方法和“画文本”不同之处在于,多了两个“首尾索引”参数。

注意:尾索引所处的文本,并不会取出。

 

代码编写如下图:

“异步绘制帧”方法下调用本方法,其它的不变,增加一个“首尾索引”参数。

注意:文本索引值从0开始。

 

运行效果如下图:

点击“按钮1”后,画板内只会绘制“软件”两个字。

 

 

● 画文本区间2

 

帮助文档如下图:

本方法和“画文本区间”不同之处在于,本方法绘制的是“字符串类”

 

代码编写如下图:

定义一个“字符串类”变量,设置参考。

可以利用“文本到字符串”方法转换文本为“字符串”

最后将“字符串”变量写入参数对应位置。

 

运行效果如下图:

点击“按钮1”后,成功取出“火山”两个字,并且绘制在画板上。

 

 

● 画文本区间3

 

帮助文档如下图:

本方法和“画文本区间2”不同之处在于,“参数4”变成了“字符[]”

“参数6”变成了字符数目。

 

代码编写如下图:

定义类型为“字符[]”的字符数组变量,设置初始值。

“参数4”填写定义的“字符数组”变量,“参数6”填写一个4。

注意:因动态调用的关系,参数1“画板类”被省略。

 

运行效果如下图:

点击“按钮1”后,画板上就会绘制出“山软件开”四个字符。

 

 

● 画点

 

帮助文档如下图:

本方法支持动态调用,有四个参数。

“参数2、3”设置横纵坐标,“参数4”填写定义的“画笔类”变量。

画点有两种形状:圆点和方点。可以通过“画笔类”“点形状”属性来指定。

如果不指定“点形状”默认是方形。

通过“笔划宽度”“笔划像素宽度”都可以指定“点”的直径。

两种属性的区别在于,前者为DP单位,后者是像素单位。

备注:关于DP单位说明,可以看“尺寸单位.DP”的帮助文档。

 

代码编写如下图:

定义一个新的“画笔类”变量,分别设置“颜色”“笔划宽度”“点形状”

第一个“画笔类”变量,只定义“颜色”“笔划像素宽度”

随后在“异步绘制帧”中执行“画点”方法,分别用不同的画笔类。

 

运行效果如下图:

点击“按钮1”后,正方形的点和圆形的点均全部画出。

 

 

● 画一批点

 

帮助文档如下图:

本方法和“画点”的区别就是,本方法一次性可以画“一批点”。同样支持设置“圆点”

“参数2”由原来的坐标变成了“浮点小数数组”。数组中“每两个”成员代表一个“横纵坐标”位置。

所以填写的“浮点小数”内成员,必须为“双数”

 

代码编写如下图:

首先定义一个“小数[]”数组变量,设置一个“双成员数”的初始值。

随后利用“浮点小数数组.从小数数组创建()”方法,创建浮点小数,参数填写定义的小数变量即可。

最后将“画笔”变量填入参数。

 

运行效果如下图:

执行“按钮1”后,会以一次性出来一批点。

 

 

● 画一批点2

 

帮助文档如下图:

本方法和“画一批点”不同之处在于,本方法增加了“起始成员索引”“所绘制点数目”两个参数。

如果使用本方法,必须要要保证浮点小数“数组成员数”大于“起始成员索引+所绘制数目*2”

 

代码编写如下图:

照抄“画一批点”的代码,方法名修改为本方法,增加两个参数。

参数内分别填写“1”“2”

 

运行效果如下图:

最终结果,执行“按钮1”后会按照参数中指定的,画两个点。

点的坐标位置也是从“40”开始。

 

 

● 画直线

 

帮助文档如下图:

本方法只是动态调用,有六个参数。

因本方法涉及不到填充,所以“画笔类”“笔划类型”属性会被忽略。

 

代码编写如下图:

直接在“异步绘制帧”下,利用“画板对象”调用本方法。

将你想要画位置的坐标分别写入,最后一个参数填写定义的“画笔”变量。

如果想要调整“直线”“颜色和粗细”可以通过画笔类的“颜色”“笔划像素宽度”属性调整。

 

运行效果如下图:

点击“按钮1”后成功画出一条竖着的直线。

 

 

● 画一批直线

 

帮助文档如下图:

本方法和“画一批点”方法大同小异,不同之处在于“画线”需要四个成员。

 

代码编写如下图:

“画一批点”方法一致,定义小数变量,设置初始值。

最后利用“浮点小数数组.从小数数组创建”方法,创建浮点数组。

 

运行效果如下图:

数组内设置了12个成员,因此画出来3条线。

 

 

● 画一批直线2

 

帮助文档如下图:

本方法和“画一批点2”基本相同,不同之处在于本方法数组成员数量的公式,最后结尾需要“乘4”

必须要保证数组成员数量大于计算公式的结果。

 

代码编写如下图:

代码编写和“画一批点2”也基本相同,起始索引填写“3”,数目填写“2”

表示从数组的“第四个成员”开始,“画两条”直线。

 

运行效果如下图:

点击“按钮1”成功显示两条直线,坐标分别如下、

 

 

● 画矩形

 

帮助文档如下图:

本方法支持动态调用,顾名思义,就是根据“指定坐标”位置绘制一个“矩形”

因绘制矩形是固定的高度宽度,所以“画笔类”“笔划宽度”“笔划像素宽度”属性都将被省略。

 

代码编写如下图:

例如:在“异步绘制帧”帧下调用本方法。

前面两个坐标参数填写0,这样绘制的矩形就会紧贴着画板的左上角。

后面“两个坐标”相同,这样就会绘制出来一个正方形,正方形的颜色跟“画笔类”定义的“颜色”属性有关系。

 

运行效果如下图:

上面的一些方法中,已经将“画笔类”的颜色定义为“白色”,所以此时显示的是“白色”的正方形。

 

 

● 画矩形2

 

帮助文档如下图:

本方法和“画矩形”不同支持在于,本方法是通过“矩形类”进行绘制。

通常情况下使用的是,矩形类的“上、下、左、右”四个属性。

 

代码编写如下图:

“异步绘制帧”方法下,定义一个“矩形类”变量,分别设置“上下左右”四个属性。

上:矩形“顶边”“画板顶部”的距离。

下:矩形“底边”“画板顶部”的距离。

左:矩形“左边”“画板左边”的距离。

右:矩形“右边”“画板左边”的距离。

 

运行效果如下图:

点击“按钮1”后一个“长300高100”的矩形被画出。

 

 

● 画矩形3

 

帮助文档如下图:

本方法和“画矩形2”不同之处在于“小数矩形类”“上、下、左、右”属性支持小数值。

 

代码编写如下图:

定义“小数矩形类”变量,它的“上下左右”属性支持填写小数。

运行效果参考“画矩形2”

 

 

● 画圆

 

帮助文档如下图:

本方法支持动态调用,顾名思义就是在“画板”上利用“画笔类”定义的颜色,绘制一个实心的圆形。

本方法共有“五个”参数,动态调用时“参数1”省略不写。

因本方法是绘制实心圆,所以“画笔类”“笔划像素宽度”属性会被忽略。

注意:如果绘制的半径小于等于0,则不会进行绘制。

坐标和半径单位为像素。

 

代码编写如下图:

直接在“异步绘制帧”下通过“画板对象”参数调用本方法即可。

例如:横纵坐标全部填写“200”,半径填写“100”,最后将“画笔”变量写入参数。

 

运行效果如下图:

点击“按钮1”后就会画一个“直径为200”像素的正圆。

圆形距离左边和顶边的位置均是“100像素”

因安卓屏幕DPI的问题,最终圆的物理大小可能跟例子中大小有误差,但像素值一致。

 

 

● 画椭圆

 

帮助文档如下图:

本方法代码编写参考“画矩形3”,这里不再讲解。

 

 

● 画圆弧

 

帮助文档如下图:

本方法支持动态调用,顾名思义就是画一个圆弧。

依然需要指定“小数矩形类”“上下左右”四个属性。

注意:

1、如果起始角度=0,则从3点钟方向开始顺时针绘制。

2、“弧长角度”大于等于360,则会绘制整个圆形。如果小于360,扇形的角度等于此度数。

3、“参数5”如果设置为“真”则会绘制一个扇形,否则将把起始点和结束点进行直线连接绘制半圆形状。

 

代码编写如下图:

“小数矩形类”的作用是指定一个椭圆的坐标位置。

而画的“圆弧”会在这个椭圆“坐标位置”之内进行绘制。

例如:起始角度参数“填写0”,弧长角度“填写200”.

“是否连接到中心”参数填写“真”

 

运行效果如下图:

最终结果,左图:从“3点钟”的位置“开始绘制”,绘制了一个角度为“200”的扇形。

如果填写“360”,将会绘制一个完整的圆形。

右图:“是否连接到中心”填写为“假”的效果。

 

 

● 画圆角矩形

 

帮助文档如下图:

本方法有“五个”参数,顾名思义就是绘制一个圆角矩形。

矩形的大小跟“小数矩形类”“上下左右”参数有关系。

圆角的弧度跟“横向半径”“纵向半径”有关系。

 

代码编写如下图:

依然是需要定义一个“小数矩形类”变量,设置“上下左右”的参数。

写入“小数矩形”变量到参数,填写圆角部分的横向和纵向半径最后将“画笔”变量,写到最后一个参数。

注意:因绘制圆角矩形属于填充操作,因此“画笔像素宽度”属性此时会忽略。

 

运行效果如下图:

运行后点击“按钮1”就会出来一个圆角矩形.

因为“纵向半径”“横向半径”不相同,所以这里的“圆角矩形”有些变形。

并不是大家常看到圆角矩形样式。

 

 

● 画位图

 

帮助文档如下图:

本方法有“五个”参数,顾名思义就是在画板上绘制一个位图,也就是画图片。

通过“参数2”“位图类”可以导入图片。

图片的坐标通过“参数3和4”进行指定。

最后依然是“画笔类”,本类可以为“空对象”,不需要指定任何属性。

注意:横坐标位置表示图片左上角距离“画板左边”“像素”距离。

纵坐标自然就是距离顶部的位置。

如果图片的“密度”“画板对象的密度”不相同,则本方法会自动进行“缩放位图”基于“画板密度”进行绘制。

密度的单位DPI。

 

代码编写如下图:

定义类型“画笔类”的成员变量,可以不用写任何属性值。

“异步绘制帧”事件下,定义两个变量,类型分别为“可绘制资源”“位图类”

“可绘制资源”导入张图片,必须保证名称不能有中文。

随后利用“位图类.从资源创建()”方法,将“位图资源”变量,写入参数中。

最后利用本方法画“位图类”,指定坐标,画笔变量写入参数。

 

运行效果如下图:

点击“按钮1”后,指定的图片就会在画板上绘制出来。

 

 

● 画位图到矩形

 

帮助文档如下图:

本方法支持动态调用,本命命令可以通俗理解为。

将指定的图片进行剪裁,剪裁的坐标由“参数3”提供。

剪裁后放入“参数4”的坐标中,并且会以充满的形式放入。

也就是说,不管剪裁的图片有多大,最终的大小以“参数4”坐标提供的大小为准。

参数5:画笔类可以为空对象。

 

代码编写如下图:

定义画笔类变量,可以不设置任何参数。

随后在“异步绘制帧”中定义四个变量,类型分别为“可绘制资源”“位图类”和两个“矩形类”。位图类设置参考。

“位图资源”变量导入一张图片,然后给两个矩形类分别设置“上下左右”的属性。

随后,依然是需要利用“位图类.从资源创建”方法,创建位图类,赋值给“位图类变量”

最后将所有的变量依次写入本方法的参数内。

 

运行效果如下图:

点击“按钮1”后,右图的“原图图片”进行剪裁后会放到画板“指定坐标”位置。

并且剪裁的图片的高度宽度会自动缩放适应坐标。

注意:不同DPI设备最终显示效果可能有所不同。

   

 

 

● 画位图到矩形2

 

帮助文档如下图:

本方法和“画位图到矩形”基本相同,不同之处在于本方法的目的矩形位置为“小数矩形类”

代码编写参考“画位图到矩形”方法即可。

 

 

● 画可回放图片

 

帮助文档如下图:

本方法支持动态调用,通过已知的“可回放图片类”来进行内容绘制。

关于“可回放图片类”详细说明请看跳转到该类查看。

 

代码编写如下图:

定义“画笔类”变量,设置“颜色”属性为“白色”

随后在“异步绘制帧”事件下定义两个变量,分别为“可回放图片类”“画板类”,画板变量设置参考。

随后去调用“图片类.开始记录()”方法,记录一个区域,并赋值给定义的“画板”变量。

然后通过“画板”变量调用“画圆”方法绘制一个圆形。

紧接着需要调用“图片类.结束记录”,方法来结束“可回放图片类”的录制。

注意:整个录制过程中出现的“任何绘制操作”,都“不会立刻显示”在画板上。

最后调用“画板对象.画可回放图片”时参数填写“图片类”变量,这时候绘制操作才会生效。

 

运行效果如下图:

最终成功绘制了一个圆形出来。

 

 

● 画可回放图片到矩形

 

帮助文档如下图:

本方法和“画可回放图片”的区别是,本方法增加了一个“矩形类”参数。

“矩形类”的使用可参看本类中的“画矩形2”方法。

此处不再详细讲解。

 

 

● 画可回放图片到矩形2

 

帮助文档如下图:

本方法增加了一个“小数矩形类”参数。

“小数矩形类”的使用可参看本类中的“画矩形3”方法。

此处不再详细讲解。

 

 

● 画路径
● 沿路径画文本

 

以上为两个关联方法,这里统一讲解。

“画路径”帮助文档:

本方法支持动态调用,总共有三个参数。

具体的路径绘制需要通过“绘制路径类”指定路径。

绘制的颜色等属性,依然是通过“画笔类”定义。

 

“画路径”帮助文档:

本方法支持动态调用,有“六个参数”

参数1:依然是所提供的画板类对象,动态调用时“参数1忽略”

参数2:提供在哪条路径类上绘制文本。

参数3:如果为“0”则从路径起点开始绘制文本,如果“填写10”,将会距离起点“10像素”的位置开始绘制。

参数4:“等于0”文本将会绘制在线条上。“大于0”绘制在线条下方,“小于0”绘制在上方,单位像素。

参数5:提供想要绘制的文本。

参数6:提供定义的画笔类变量。

 

代码编写如下图:

首先依然是定义“画笔类”变量,设置三个属性分别为“颜色”“笔划类型”“字体像素尺寸”

然后在“异步绘制帧”下定义“绘制路径类”变量。

随后调用“绘制路径.加直线到”方法,绘制线段。

它的两个参数分别为:“结束点横向坐标”“结束点纵向坐标”

连续添加两条直线,随后调用“画路径”方法,根据“绘制路径”类提供的结束点坐标,去绘制路径。

最后调用“沿路径画文本”方法,给路径添加一段文本。

 

运行效果如下图:

点击“按钮1”就会出现如图所示的路径,并且路径上方还有一段文本。

绘制路径如果不指定起始点位置,默认从画板“左上角”开始绘制。

线段的结束点,“加直线到”方法定义的一致。

所绘制的文本也偏移了指定的距离。

 

 

● 沿路径画文本区间

 

帮助文档如下图:

本方法和“沿路径画文本”基本相同,不同之处在于,本方法绘制的是“字符数组”

并且可以指定“首字符索引”“字符数目”

 

代码编写如下图:

我们只需要在“沿路径画文本”方法的基础上稍作修改。

增加一个“字符数组”变量,利用“文本到字符数组”方法转换文本为字符数组,赋值给变量。

最后将“字符数组”变量写入参数。

“首字符索引”“字符数目”参数,填写的是“2和3”

意思就是说,从第二个字符索引,取出三个字符。

 

运行效果如下图:

点击“按钮1”后,路径绘制成功,文字也是取的指定文本。

 

 

● 置入剪裁矩形

 

帮助文档如下图:

本方法有五个参数,后四个均为坐标位置,单位像素。

本方法可以通俗理解为,将当前画布剪裁一个区域出来。

进行一些操作时尽在当前设置的区域内操作,不会影响区域外的效果(例如:“填充颜色”)。

 

代码编写如下图:

例如:先执行“填充颜色”方法去填充一个“红色”

最后调用“置入剪裁矩形”方法,在画布左上角设置一个矩形区域。

最后,继续执行一个“填充颜色”方法。

 

运行效果如下图:

最终的效果,点击“按钮1”后,红色的背景下,左上角会有一个黄色的矩形区域。

 

 

● 置入剪裁矩形2

 

帮助文档如下图:

本方法和“置入剪裁矩形”不同之处在于,本方法利用的是“矩形类”创建一个矩形区域。

 

代码编写如下图:

直接定义一个“矩形类”变量,分别设置“上下左右四个属性即可。

本方法运行效果和“置入剪裁矩形”效果一致,因此不再演示。

 

 

● 取当前剪裁矩形

 

帮助文档如下图:

顾名思义,就是取出来当前裁剪的矩形,如果矩形存在则放入“矩形类”参数中。

通过“矩形类”“上下左右”四个读属性可以读取坐标值。

 

代码编写如下图:

本方法的使用很简单,直接将本方法写到“置入剪裁矩形”后面即可,就可以将定义的“剪裁矩形”取出。

当然需要定义一个“矩形类”变量,来承载这个矩形数据。

随后通过调用“矩形.上、下、左、右”四个读属性,可以读取矩形的四个坐标。

“到文本”转换为文本型,然后相加,最后提供给“提示框”演示结果。

 

运行效果如下图:

提示框成功弹出坐标位置,证明本方法执行成功。

 

 

● 置入剪裁路径

 

帮助文档如下图:

本方法顾名思义,就是通过路径创建一个剪裁区域出来。

返回值与“置入剪裁矩形”一致。

 

代码编写如下图:

首先定义一个“绘制路径类”变量。

随后依然是“填充颜色”,然后利用“绘制路径”变量,添加两条直线。

随后调用本方法,将变量写入参数。

最后填充一个黄色。

 

运行效果如下图:

点击“按钮1”开始绘制后,就会在红色的画板上,出现一个黄色的三角形。

 

 

● 置入剪裁区域

 

帮助文档如下图:

本方法顾名思义,就是通过“剪裁区域类”创建一个剪裁区域出来。

返回值与“置入剪裁矩形”一致。

 

代码编写如下图:

定义一个类型为“剪裁区域类”变量,设置参考。

随后调用“剪裁区域类.从矩形创建”方法,可以创建一个矩形的剪裁区域出来。

将整个方法赋值给“剪裁区域”变量,随后将变量写入“置入剪裁区域”方法的参数中。

最后的填充一个黄色。

本方法运行效果和“置入剪裁矩形”效果一致,因此不再演示。

 

 

● 置入剪裁小数矩形

 

帮助文档如下图:

本方法与“置入剪裁矩形”不同之处在于,本方法的位置坐标,支持填写“小数”

代码编写参考“置入剪裁矩形”

 

 

● 置入剪裁小数矩形2

 

帮助文档如下图:

本方法与“置入剪裁矩形2”不同之处,本方法的参数是“小数矩形类”,支持设置“小数”

代码编写参考“置入剪裁矩形2”

 

 

● 矩形剪裁测试

 

帮助文档如下图:

本方法有六个参数,通俗来讲,它可以判断指定的矩形区域,是否和“剪裁区域”相交。

返回“真”表示“不相交”

 

代码编写如下图:

创建一个“剪裁区域”,然后利用本方法填写坐标,判断坐标内的区域是否和“剪裁区域”相交。

最后一个参数,根据实际需求填写,通常填写“假”即可。

最后判断本方法的返回值,是否等于真。

 

运行效果如下图:

点击“按钮1”开始绘制后,提示“不相交”

证明本方法中输入的坐标的确与“剪裁矩形”不相交。

如果输入一个相交的数值,必然会返回“假”提示“相交”

 

 

● 矩形剪裁测试2

 

帮助文档如下图:

本方法和“矩形剪裁测试”不同之处在于,本方法是通过“小数矩形类”设置坐标。

前面的多个方法中均运用到了小数矩形类,这里不再详细讲解。

 

 

● 路径剪裁测试

 

帮助文档如下图:

本方法的作用就是检测一个“路径区域”,是否和“剪裁区域”相交。

返回“真”表示不相交,返回“假”表示相交。

注意:极个别情况下,“不相交”也会返回“假”

 

代码编写如下图:

首先执行“填充颜色”方法,填充一个红色背景,随后设置一个剪裁区域。

定义一个“绘制路径类”变量,利用变量去添加一个矩形的路径。

通过填写的坐标数值可以看出,“它与剪裁矩形”处于“相交状态”

随后调用“路径剪裁测试”方法,检测是否相交。

 

运行效果如下图:

点击“按钮1”后会提示相交,证明本方法判断成功,没有出现低概率的判断失败的情况。

 

 

● 组合剪裁矩形

 

帮助文档如下图:

本方法支持动态调用,总共有“三个”参数。

参数1:设置要操作的画板类对象(动态调用时省略)。

参数2:当前“剪裁区域”和要组合的“矩形类”

参数3:剪裁区域和矩形的组合方式,调用方式“剪裁区域组合方式.XXXX”

 

代码编写如下图:

填充背景色后,设置一个剪裁矩形。

随后定义一个“矩形类”变量,分别设置“上下左右”四个属性值。

随后通过“画板对象”调用“组合剪裁矩形”方法。

参数2:填写“矩形变量”

参数3:组合模式使用“剪裁区域组合方式.相交”

最后剪裁区域填充黄色。

 

运行效果如下图:

点击“按钮1”后,最终结果并不是绘制“剪裁矩形”,也不是绘制“矩形类”

而是绘制两者相交的区域。

 

 

● 组合剪裁路径

 

帮助文档如下图:

本方法和“组合剪裁矩形”不同之处在于,本方法是对“绘制路径类”进行组合。

“绘制路径类”的创建参考“置入剪裁路径”,此处不再详细讲解。

代码编写参考“组合剪裁矩形”

 

 

● 组合剪裁区域

 

帮助文档如下图:

本方法和“组合剪裁矩形”不同之处在于,本方法是对“剪裁区域类”进行组合。

“剪裁区域类”的创建参考“置入剪裁区域”,此处不再详细讲解。

代码编写参考“组合剪裁矩形”

 

 

● 组合剪裁小数矩形

 

帮助文档如下图:

本方法和“组合剪裁矩形”不同之处在于,本方法是对“四个小数”坐标形成的“矩形”进行组合。

代码编写参考“组合剪裁矩形”,此处不再进行详细讲解。

 

 

● 组合剪裁小数矩形2

 

帮助文档如下图:

本方法和“组合剪裁小数矩形”不同之处在于,本方法是对“小数矩形类”进行组合。

代码编写参考“组合剪裁矩形”,此处不再进行详细讲解。

“小数矩形类”的创建参考“画矩形3”

 

 

● 乘于错切矩阵

 

帮助文档如下图:

本方法支持动态调用,有三个参数。

第一个参数依然是要操作的画板类对象。

参数2、3,可以理解为切斜角度,均为tan值。

比如要切斜“45度”“tan45=1”,参数内“填写1”即表示倾斜45度。

帮助文档内的乘法公式,知道即可无需深入了解。

 

代码编写如下图(1):

定义三个“画笔类”变量,分别设置“白色,红色,绿色”“笔划类型”设置“描边”

设置“描边”后,就可以绘制空心矩形。

 

代码编写如下图(2):

“异步绘制帧”方法下,首先调用“画矩形”方法填充一个白色的矩形。

随后调用“乘于错切矩阵”,参数1填写“0”,参数2填写“1”

这样填写就表示“纵向倾斜45度”

随后我们继续调用“画矩形”方法,此时绘制的矩形就是切斜后的矩形。

画笔类参数使用“画笔2”,绘制红色矩形。

重复“乘于错切矩形”,随后继续调用“画矩形”

此时矩形的绘制,会基于红色矩形进行绘制。

 

运行效果如下图:

可以看到“白色矩形”位于左上角是一个正方形。

“红色矩形”左侧不变右侧下移,倾斜了“45度”

但是“绿色矩形”此时看上去并不像是切斜了45度,但是矩形切斜位置处于对角线。

红色矩形是由白色矩形切斜而来,白色矩形是90度直角。

虽然“绿色矩形”是基于“红色矩形”进行绘制,但是参考的还是白色矩形的直角角度。

倾斜45度就是对半分,所以此刻绿色矩形将红色进行了对半分。

 

 

● 乘于平移矩阵

 

帮助文档如下图:

本方法通俗理解,就是对矩形进行平移操作。

参数2:表示矩形距离画板左边的位置。

参数3:表示矩形距离画板顶边的位置。

 

代码编写如下图:

保留“乘于错切矩阵”方法中的“画笔”变量。

调用“画矩形”方法,绘制一个白色矩形,作为参考。

随后执行“乘于平移矩阵”方法,两个参数分别填写“50,100”

然后继续执行一个“画矩形”方法。

 

运行效果如下图:

我们可以看到,白色矩形位于“左上角”,而绘制的“红色矩形”进行了一定距离的偏移。

而这个偏移的数值,其实就是“乘于平移矩阵”内填写的参数数值。

“乘于平移矩阵”的作用,如坐标所示,其实并不是让矩形发生了偏移,而是“起点坐标”发生了偏移。

也就是说调用本方法后,绘制任何矩形时,都会以这个偏移后的坐标作为起点进行绘制。

 

 

● 乘于缩放矩阵

 

帮助文档如下图:

顾名思义,建立一个“缩放矩阵”,用来对指定内容进行缩放操作。

参数2、3:填写的数值大于1扩大。小于1缩小。等于1不变。

例如:填写0.5缩小一半。

本方法可用作于“图片查看器”,通过手势操作,按照一定比例进行放大和缩小图片。

 

代码编写如下图:

直接在“乘于平移矩阵”代码的基础上,将“平移”改为“缩放”

两个参数都填写“0.5”,表示缩小一倍。

 

运行效果如下图:

点击“按钮1”开始绘制后,可以看到“红色矩形”明显小了一倍。

 

 

● 乘于缩放矩阵2

 

帮助文档如下图:

本方法和“乘于缩放矩阵”不同之处在于,多了两个缩放中心的坐标参数。

 

代码编写如下图:

例如:两个“缩放中心坐标”,分别填写“50”,就表示从“白色矩形”的中心位置进行缩放。

 

运行效果如下图:

点击“按钮1”开始绘制后,可以看到“红色矩形”缩放后位于“白色矩形”中心位置。

 

 

● 乘于旋转矩阵

 

帮助文档如下图:

本方法的作用就是创建一个旋转矩阵,用作绘制图像的旋转。

参数2:提供的旋转角度,会以顺时针方向旋转。

 

代码编写如下图:

依然还是这一套代码。

直接在本方法内,填写想要旋转的角度即可。

例如:填写“45”度。

 

运行效果如下图:

点击“按钮1”开始绘制后,红色的矩形进行了顺时针旋转45度的操作。

 

 

● 乘于旋转矩阵2

 

帮助文档如下图:

本方法与“乘于旋转矩阵”不同之处在于,本方法支持旋转中心坐标的设置。

参数3、4用来设置旋转中心的“横纵坐标”

 

代码编写如下图:

直接在参数内填写想要作为“旋转中心”“横纵坐标”即可。

例如:这里全部填写100。

 

运行效果如下图:

因矩形的高度和宽度都是一百,所以填写坐标为一百后,旋转中心就移动到了矩形的右下角。

 

 

● 从位图创建

 

帮助文档如下图:

本方法的作用是通过“位图类”创建一个“画板对象”,本画板对象的所有绘制操作,将会在“位图”上进行。

也就是说不会显示在当前画板上,除非调用了“画位图”等方法才会显示出来。

另外,位图对象的“易变模式”必须为真。

 

代码编写如下图:

定义画笔类变量,分别设置“颜色”“笔划类型”“像素宽度”属性。

“异步绘制帧”方法下定义三个变量,分别为“位图类”“可绘制资源”“画板类”,注意要设置参考。

首先通过“从资源创建”创建位图对象,赋值给变量。

然后调用“位图变量”“复制创建”方法,设置当前的“易变模式”为真,然后赋值给当前对象。

接下来就可以利用“从位图创建”方法,创建画板赋值给“画板”变量。

随后通过画板绘制一个矩形,此矩形的绘制就是基于当前的“位图对象”进行,绘制过程是看不见的。

最后只有了调用“画位图”方法,绘制操作才能出现在画板上。

 

运行效果如下图:

导入的位图图片多了一个白色的外边框。

 

 

● 矩阵画位图

 

帮助文档如下图:

本方法支持动态调用,总共有四个参数。

它的作用就是将指定的“位图类”绘制到指定的“矩阵类”中。

另外“画笔类”可以“不定义变量”,直接填写“空对象”即可。

 

代码编写如下图:

“异步绘制帧”方法下,定义三个变量,类型分别为“位图类”“可绘制资源”“矩阵类”

其中“位图类”设置参考,给“可绘制资源”导入一张图。

调用“位图类.从资源创建()”方法,参数填写图片变量,赋值给定义的“位图类变量”

随后调用“矩阵.乘于平移矩阵”方法,创建一个矩阵对象。

最后执行“矩阵画位图”,将变量填写参数内即可。

 

运行效果如下图:

点击“按钮1”开始绘制后,成功在画板指定矩阵内绘制了导入的图片。

 

 

● 当前剪裁矩形(读)

 

帮助文档如下图:

本方法与“取当前剪裁矩形”不同之处在于,本方法是直接返回“矩形类”变量。

通过矩形类的“上下左右”四个属性可以取出坐标值。

“矩形类”的使用可参考“取当前剪裁矩形”方法。

 

 

● 当前转换矩阵(写)

 

帮助文档如下图:

本写属性的作用,就是用来设置当前转换矩阵。

 

代码编写如下图:

定义“画笔类”变量,“颜色”属性设置白色。

“异步绘制帧”方法下,定义“矩阵类”变量。

首先调用“矩阵.乘于平移矩阵”方法,两个参数全部填写100.

然后使用本属性设置“当前转换矩阵”为定义的“矩阵”变量。

随后我们调用“画板对象.乘于平移矩阵”方法,两个参数也填写100。

最后执行一个“画矩形”方法,此时矩形的绘制,距离左边和顶边的距离会是200。

 

运行效果如下图:

点击“按钮1”开始绘制后,左边和顶边都是200像素的距离。

 

 

● 绘制过滤器(写)

 

帮助文档如下图:

它的作用就是在绘制图形或者图片时,使用过滤器进行过滤一些不想要的东西。

例如:绘制图片时产生的锯齿。

“绘制过滤器类”中有两个方法,用作过滤不同的东西。

 

代码编写如下图:

“异步绘制帧”事件下,定义两个变量,分别为“位图类”和可绘制资源”,用作创建“位图”对象。

随后利用“乘于旋转矩阵”方法旋转图片,最后调用“画位图”绘制图片。

接下来使用“绘制过滤器”写属性,等号右侧填写“绘制过滤器类.创建反锯齿过滤器()”方法。

赋值此方法后,图片就有了反锯齿的属性,然后调用“画位图”绘制图片。

 

运行效果如下图:

最终结果第一次绘制,可以看到图片有明显的“锯齿”痕迹。

第二次绘制,可以明显的看到,锯齿都消失不见。

 

 

● 绘制过滤器(读)

 

帮助文档如下图:

顾名思义,就是返回设置的“绘制过滤器类”对象。

调用方式:“异步绘制帧”事件下的调用方式“画板对象.绘制过滤器”

 

 

● 密度(写)

 

帮助文档如下图:

本属性是用来设置画板的密度,用来绘图时计算缩放系数。

密度设置后,画板的默认密度将不再被使用。

 

代码编写如下图:

定义两个变量,类型分别为“位图类”“可绘制资源”

其中“位图类”设置参考,可绘制资源导入一张图片。

随后调用“位图类.从资源创建”方法,赋值给“位图”变量。

随后利用“密度”写属性,分别写两个密度值,分别调用画位图方法。

 

运行效果如下图:

密度为100的图片,明显比密度为200的,小一倍。

 

 

● 密度(读)

 

帮助文档如下图:

顾名思义,就是读取当前画板的“密度值”

如果没有设置过,则返回0。

 

代码编写如下图:

直接在需要读取的地方,放入本“读属性”即可。

例如:这里直接读取密度值,赋值给“提示框”显示结果。

 

运行效果如下图:

因之前没有设置密度值,所以点击“按钮1”后,会提示“当前密度:0”

 

 

● 目的位图(写)

 

帮助文档如下图:

“写属性”“画板类.从位图创建()”方法有些类似。

它们的目的都是“将绘制操作”在位图上进行,而不显示在画板上。

同样适用本属性必须保证,位图对象的“易变模式”为真。

 

代码编写如下图:

直接照抄“从位图创建”的代码,然后简单修改即可实现本属性的应用。

此处不再详细解释。

 

 

● 是否不支持透明(读)

 

帮助文档如下图:

顾名思义,就是判断当前绘制层是否支持透明。

返回“真”不支持透明,返回“假”支持透明。

“不支持透明”的情况下,可以使用“保存绘制层”方法进入一个新的离屏绘制层,进行绘制透明图像的操作。

 

代码编写如下图:

“按钮1”被单击“高级画板1.开始绘制”的属性下面,增加一个“高级画板1.像素格式”属性。

并且给其属性设置“图像像素格式.透明”,这样当前绘制层就会支持透明。

“异步绘制帧”事件下,可以通过“画板对象.是否不支持透明”来判断当前的绘制层是否支持透明。

最后弹出对应的结果。

 

运行效果如下图:

最终结果就是“支持透明”

如果我们在“按钮1”被单击下,设置“图像像素格式.不透明”

那么点击“按钮1”后肯定会弹出“不支持透明”

 

 

● 是否启用硬件加速(读)

 

帮助文档如下图:

“读属性”顾名思义,判断当前画板是否启用“硬件加速”进行绘制操作。

“硬件加速”即充分利用手机硬件来进行加速操作。

注意:画板的部分绘制操作,需要关闭加速才能进行绘制。

启用硬件加速的方法:“高级画板1.硬件加速=真”即可启用。

 

代码编写如下图:

在需要进行判断的位置,填写本属性进行判断即可。

本方法不再进行结果演示。

 

 

● 所保存状态数目(读)

 

帮助文档如下图:

红色方块内的为重点。

用户每次调用“保存状态”“保存绘制层”等保存方法时,都会“计数+1”

当调用“恢复状态”“恢复状态到”方法时,就会弹出保存的绘制层并且“总状态数-1”

本方法的作用就是读取“所有保存”“未弹出”“保存状态数”

注意:默认状态数会有一个。

 

代码编写如下图:

在需要读取的地方,填写本“读属性”即可。

例如:我这里执行“到文本”将状态数目转换为文本,提供给提示框显示。

注意:我这里并没有进行任何保存状态的操作。

 

运行效果如下图:

最后结果点击“按钮1”开始绘制后,提示“1”,也就是说状态数默认为1。

如果你在本属性之前执行了“保存状态”方法,那么此时必然会提示“2”

 

 

● 最大可绘制位图高度(读)

 

帮助文档如下图:

本读属性,可以返回当前画板最大的可绘制“高度”

超过返回值尺寸的位图,可以进行限制绘制。

如果在“异步绘制帧”方法下调用,直接使用“画板对象.最大可绘制位图高度”即可。

 

 

● 最大可绘制位图宽度(读)

 

帮助文档如下图:

本读属性,可以返回当前画板最大的可绘制“宽度”

超过返回值尺寸的位图,可以进行限制绘制。

调用方法同上。

 

 

● 绘制层高度(读)

 

帮助文档如下图:

“读属性”用来读取当前绘制层的“高度”

注意:“绘制层高度”并不等于“画板高度”

如果在“异步绘制帧”方法下调用,直接使用“画板对象.绘制层高度”即可。

 

 

● 绘制层宽度(读)

 

帮助文档如下图:

“读属性”用来读取当前绘制层的“宽度”

注意:“绘制层宽度”同样也不等于“画板宽度”

调用方式同上。