作者:创世魂
● 本类说明
帮助说明:
通过本类可直接调用“系统相机”进行“拍照和录像”等操作。
除此之外,还可以打开系统相册,选择图片进行裁剪。
注意:本类位于“多媒体功能支持”模块中,必须添加此模块才能使用。
● 获得返回数据
以上三个为关联方法,此处统一讲解。
“获得返回数据”帮助文档:
无论执行“拍照”或“录像”,本方法必须调用。
需要将此方法写到“通知_获得返回数据”虚拟方法下,否则“拍摄事件”无法响应。
“开始拍照”帮助文档:
执行本方法后将会触发“拍摄完毕”事件。
参数1:提供要保存的文件路径即可。
参数2:通常情况下直接填写“本对象”即可。
“拍摄完毕(事件)”帮助文档:
执行“开始拍照”方法后触发本事件。
通过本事件的“照片路径”参数可获得照片保存路径。
界面准备如下图:
打开设计器,拖放一个“按钮”,“文本框”和“图片框”。
设置“文本框”组件宽度类型为“匹配父组件宽度”。
设置“图片框”组件高/宽度类型为“匹配父组件高/宽度”。
代码编写(1):
保存布局后,定义“系统相机类”变量,右键选择“事件接收方法”。
添加“拍摄完毕”事件。
代码编写(2):
添加完毕后,判断“来源对象==相机1”。
然后将“照片路径”显示在文本框中。
通过“读入文件”命令,读取照片为字节数据。
最后将此方法放入,“图片框1.置图片数据”的参数中。
如此操作后,拍着的照片就会显示在图片框中。
代码编写(3):
在“通知_获得返回数据”方法下,执行“相机1.获得返回数据”方法。
三个参数分别对号入座即可。
代码编写(4):
最后需要在“按钮1”被单击下,执行“相机1.开始拍照()”方法。
参数1:填写要保存的文件路径即可。
参数2:直接填写“本对象”即可。
运行结果如下图:
点击“按钮1”会调用系统相机开始拍照,拍照结束后图片框就会显示刚刚拍摄的照片。
如果手机内有多个相机软件,大部分手机会弹出相机选择,让你手动选择相机软件拍摄(右图)。
● 开始录像
以上两个为关联方法,统一讲解。
“开始录像”帮助文档:
通过本方法即可打开系统自带相机的录像界面。
本方法共有三个参数,参数1:依然是保存路径,参数2:录像品质,只能0或1。
参数3:直接填写本对象即可。
注意:本方法会触发“录像完毕”事件。
“录像完毕(事件)”帮助文档:
调用“开始录像”录像结束后会触发本事件。
通过“录像路径”参数可以获得录像结束后文件保存路径。
代码编写(1):
直接在原代码的基础上,修改“开始拍照”为“开始录像”,然后填写对应参数,即可。
代码编写(2):
录像结束后,将“录像路径”显示在“文本框1”中。
录像无法演示,自行测试。
●浏览相册
以上两个为关联方法,统一讲解。
“浏览相册”帮助文档:
顾名思义,调用本方法可以打开系统相册进行浏览相册。
选择照片后,会触发“浏览完毕”事件。
参数直接填写“本对象”即可。
注意:建议选择系统自带相册,第三方相册可能会导致程序闪退。
“浏览完毕(事件)”帮助文档:
调用“浏览相册”选择照片后会触发本事件。
通过“文件路径”参数可以获得被选择照片的路径。
代码编写(1):
直接在“按钮1”被单击下,调用本方法即可。
代码编写(2):
添加“浏览完毕”事件,在事件下利用“读入文件”方法读取图片到图片框。
运行结果如下图:
可以看到,选择图片后图片框成功显示了选择的图片。
●浏览相册并裁剪照片
以上方法和前两个不同之处在于,本方法支持选择照片是进行裁剪。
代码编写(1):
直接在“按钮1”被单击下,调用“浏览相册并裁剪照片”方法即可。
本方法同样只有一个参数,直接填写“本对象”即可。
代码编写(2):
添加“裁剪完毕”事件,在事件下利用“读入文件”方法读取图片到图片框。
运行结果如下图:
可以看到,选择图片后出现了控制柄可以调整大小。
调整完毕后就可以将方框内的区域剪裁下来。
因国内系统多为定制系统,剪裁界面和下图未必一样。
●是否支持闪光灯
以上三个方法,就是字面上的意思,此处不再展示帮助文档。
大家可以自行打开帮助文档查看。
代码编写如下图:
直接调用“如果”去判断“是否支持闪光灯()”方法即可。
如果支持,就执行“开启闪光灯”,不支持就弹出对应提示。
“开启闪光灯”有一个逻辑返回值,可以继续用“如果”进行判断。
至于“关闭闪光灯”,本方法并没有任何参数,在需要关闭的地方调用本方法即可。
运行效果如下图:
可以看到当前闪光灯“开启失败”,因为教程使用的是“安卓模拟器”。
安卓模拟器并没有闪光灯,所以自然提示开启失败。
至于为什么没有弹出“不支持闪光灯”,可能是因为安卓模拟器内部进行了“特殊处理”。
● 取照片旋转角度
帮助文档如下图:
本方法顾名思义,可以取出指定路径的照片旋转角度。
务必保证“照片路径”真是存在,且照片为标准的图片格式。
返回一个整数值,如果为“0”表示没有旋转,否则代表“旋转角度”。
代码编写如下图:
通过“相机1”调用本方法即可,参数内填写一个真实存在的“图片路径”。
然后将其赋值给“返回值”变量。
最后判断返回值是否为0,根据判断结果执行对应的提示框。
帮助文档如下图:
可以看到,我指定的图片提示“照片没有旋转”。
也就表示,当前方法执行后返回了“0”。