版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AppInventor2组件应用在AppInventor2的组件面板中有用户界面(User界面布局(layout)、多媒体(media)、绘画与动画(drawingandAnimation)、传感器(sensors)等九种组件,它们分为可视组件和非可视组件两类。用户界面组件(UserInterface)用户界面组件是App开发过程中使用频率最高的组件。它包括按钮(Button)、标签(Label)、图像(Image)、文本输入框(TextBox)、日期选择框(DatePicker)等组件,如图2.36所示。这些组件大部分都是可视组件。它们有许多共同的属性,如:背景颜色、字体、字号、高度、宽度等。这些属性的设置方法也基本相同。按钮(Button)按钮是程序中最常用的组件,用户通过点击按钮完成程序交互。按钮支持的事件包括:被点击(Click)、被按压(LongClick)、获得焦点(GotFocus)、失去焦点(LostFocus)等,如图2.37所示。会变颜色的按钮本例题只使用到一个按钮组件。当“按钮1”被点击时,改变“按钮1”的背景颜色。颜色的改变需要用到“模块”菜单中的“内置块”→“颜色”-“合成颜色”模块,如图2.38所示。合成颜色模块包括R、G、B三种颜色值和透明度四个参数。本程序只设置了R、G、B三种颜色,它们的分配范围是0-255,例如:纯红为R值255,G值0,B值0,RGB图像中使用这三种颜色就可以混合出许多种不同的颜色。为了使按钮的颜色呈现不同的变化,程序在设置R、G、B三种颜色的值时使用了随机数。随机数是在一定范围内随机产生的数,并且在这个范围内得到的每一个数的机会是一样的。它就如同我们掷硬币正反面或是掷骰子所产生的结果一样,在本程序中我们设定随机数的范围为0-255,组件属性设置如下表。标签(Label)、文本输入框(TextBox)标签是开发者显示信息给用户的组件,在程序运行时,标签的信息只能通过代码修改,标签只有属性没有事件。文本输入框是开发者供用户输入信息的组件。虽然它也可以用来显示提示信息,但主要功能还是为用户输入信息使用的。文本输入框支持“获取焦点”和“失去焦点”事件。标签和文本输入框的基本属性设置与按钮类似。用户登录,设计如图2.40所示的项目。本项目界面包括两个标签、两个水平布局、一个文本输入框、两个按钮。当用户在“文本输入框1”输入姓名并点击“确定”按钮后,“标签2”将显示“某某同学,欢迎你。”字样。当用户点击“退出”按钮后,程序将自动退出,所用的组件属性设置如下表。这段代码中,点击“按钮1”后“标签2”显示的文本信息,是由“内置块”→“文本”中的“合并文本(join)”块将“文本输入框1”的信息和变量"welcome"中的信息合并得到的。文本块是与字符操作相关的模块,它可以实现对文本进行编辑、合并、长度测量、删除、转换、查找等功能,如图2.42所示本例中使用了“合并文本”块将两段文本进行了合并。本例题中“按钮2”被点击后,程序通过执行“内置块”-“控制”中的“退出程序”模块实现了程序的退出。图像是显示图片的组件。图像只有属性没有事件。设计石头、剪刀、布游戏程序。分析石头、剪刀、布是我们小时候经常玩的游戏。这个程序使用按钮和图像组件简单模拟计算机出招的过程。程序的界面包括一个图像组件、一个按钮组件,如图2.43所示。本程序需要使用图片素材bu.png.jd.png,st.png,logo.png(bu.png是出示“布”的图片,id.png是出示“剪刀”的图片,st.png是出示“石头”的图片,logo.png为标题图片),组件属性设置如下表。这段代码中,我们使用了列表。列表的功能类似于其他编程语言中的数组。根据程序的需要,列表的元素可以动态地增减。我们通过列表名和索引值来访问列表中的元素。程序最开始,首先声明变量“pic”为空列表。并且在“screenl”初始化事件里将变量“pic”创建为一维列表,列表元素分别是字符串“jd.png”、字符串“st.png”、字符串“bu.png”。在“按钮1”被点击事件中,随机选取列表“pic”中的元素作为“图像1”图片的名称,实现石头、剪刀、布的随机变化。多媒体(media)AI2支持的多媒体组件包括照相机(Camera)、录音机(SoundRecorder)、音频播放器(Player)、摄像机(Camcorder)和视频播放器(VideoPlayer)等。照相机(Camera)照相机是非可视组件,它调用Android设备的照相机功能拍摄图片。照相机的属性、事件和方法如图2.45所示。照相机应用实例,设计如图2.46照相机应用程序。程序通过点击“拍摄”按钮,调用系统照相机进行拍照点击“选择图像”按钮,即可获取设备中的图像资源,并显示在“图像1”中,所用到的组件属性设置如下表。音效播放器(Sound)音效播放器同音频播放器一样是用来播放音频文件的音效播放器,更适合播放短小的音频文件。我们在前边的“爱打招呼的Tom猫”实例中使用了这个组件。通过设置音效播放器最小间隔(MinimumInterval)属性,我们可以保证铃音不会出现重叠效果。它的方法包括:暂停(Pause)播放(Play)、恢复(Resume)、停止(Stop)、震动(Vibrate等,如图2.48所示。音效播放器一般用于播放音效和震动手机,如图2.49所示。需要注意的是,音效播放器在播放声音之前应提前向服务器上传音频文件素材,并根据素材的时长设置最小时间间隔。录音机(SoundRecorder)录音机组件是通过启动设备中的录音机功能来实现录音,它是非可视组件。录音机的事件包括完成录制时(AfterSoundRecorded)、开始录制(StartedRecording)、停止录制(StoppedRecording)。方法有开始(Start)和停止(Stop)。录音机只有录制结果文件一个属性,用户可以通过设置该属性,获得录制声音文件的文件名和保存路径。如果不设置该属性,则录音机将自行创建和保存,创建保存的地址一般为“内部存储/MyDocuments/Recordings”下,也可以通过“完成录制时”事件去查询存储位置。如图2.50所示。一般情况下录音机和音频播放器配合实现录制并播放声音的功能。录音机组件调用的是系统录音,因此没有在程序中指定存,储位置时,录音文件会存储在系统录音机默认的存储路径中,我们可以通过“完成录音”事件的“声音”参数查找到它。设计如图2.51所示的录音应用程序。本程序的功能是通过调用系统录音机和音频播放器实现的。通过点击“开始录音”按钮,调用系统录音机进行录音,点击“停止录音”按钮,则停止录音,点击“播放录音”按钮,使用音频播放器播放录制好的声音,所用到的组件属性设置如下表。代码说明:这段代码中“按钮1”被点击事件里调用录音机组件开始录音,“按钮2”被点击事件里调用录音机组件停止录音。“录音机1”录制完成事件将录音地址赋值给全局变量RecordSound,最后在“按钮3”的点击事件中设置“音频播放器1”的源文件为全局变量RecordSound所存储的录音地址,并且调用音频播放器播放声音。绘画与动画(DrawingandAnimation)画布(Canvas)画布是一种可在其上面绘图的组件,它的二维坐标系的坐标原点在画布的左上角。画布内指定的坐标(X,Y)点,X代表该点距离画布左边界的像素数;Y代表该点距离画布上边界的像素数,X、Y都取正值,这与直角坐标系不同,如图2.53所示。画布除了高度、宽度这些常见的属性外,还支持更改背景图片、设置画笔颜色等属性。画布的事件有被拖动事件(Dragged)、被触碰事件(Touched)、被划动事件(Flung)、被按压事件(TouchDown)、被松开事件(TouchUp)等,如图2.54所示。画布的拖动事件是手指在移动过程中持续产生,这一事件可以跟踪手指的移动轨迹。该事件提供三个坐标,分别是移动开始“起点坐标点”(startX和startY)、事件产生时的“当前坐标点”(currentX和currentY)、相邻事件产生时的前点坐标点(prevx和prevY)。利用拖动事件在画布添加画线功能添加画布并设置它的高度、宽度为充满。根据两点确定一线的原理,我们设(X1,Y1)为起点,(X2,Y2)为终点画线。当手指在画布上拖动时,拖动事件将被调用很多次:手指的每次移动都会绘制出一个微小线段,从前点坐标prevx,prevy到当前坐标currentX,currentY,因此,用前点坐标prevx与prevY分别作为画布画线的参数X1和Y1;用当前坐标currentX与currentY分别作为画布画线的参数X2和Y2,即可形成有趣的画笔功能程序代码如图2.55所示。图像精灵(ImageSprite)与球形精灵(Ball)图像精灵是一种可以在画布中自由移动的图像组件。球形精灵是一种特殊的图像精灵。图像精灵与球形精灵都只能放置在画布中。它们可以响应触摸和拖拽等事件,并且可以与画布边界产生交互,精灵和精灵之间同样也可以。球形精灵和图像精灵的差,别在于用户可以通过设置图像属性来改变后者的外观,而球形精灵只能改变颜色和半径。对于图像精灵与球形精灵来说,我们可以通过设置属性来改变它们的速度、坐标、方向等。利用画布被划动事件控制小球的滚动添加画布并设置它的高度、宽度为充满。添加一个球形精灵到画布中,时间间隔1毫秒,速度为0,半径为20,画布的被划动事件只有手指在屏幕上快速划动的时候才会产生。被划动事件中提供划动起点的(x,y)坐标、划动方向(0到360度)、速度、速度在轴和Y轴的分量。我们可以将获取到的这些参数赋值给小球精灵,完成控制小球的程序,程序代码如图2.56所示。传感器组件(SensorsComponents)传感器组件主要是用来感知手机的位置、方向、加速度等参数变化的。A12针对一般手机的常用传感器提供了计时器、方向传感器、加速度传感器等组件。计时器(Clock)AI2的计时器是通过调用设备内部的时钟实现的。计时器的属性包括:一直计时(TimerAlwaysFires):选中该事件,计时将和应用程序一起执行和结束。启用计时(TimerEnabled):该事件被选中,则开始进行计时。计时间隔(TimerInterval):为计时器设定时间间隔,单位为“毫秒”,1秒=1000毫秒。计时器(Clock)只有“到达计时点”一个事件,计时器启动后,每过一个“时间间隔”就会触发该事件一次。就如同我们的心跳,每次心跳都是一个“到达计时点”事件。“计时间隔”属性就相当于两次心跳的间歇时间。编写时钟应用程序,利用计时器组件获取系统时间,设计界面如图2.57所示。分析此题主要是将“计时器1"调用到的系统当前时间转化为小时、分钟、秒,并赋值给h,m,s三个标签显示出来,所用到的组件属性设置如下表。设计3秒倒计时应用程序通过计时器与变量、图像组件配合实现倒计时3秒的程序。程序的界面包括一个图像组件、一个按钮组件、一个计时器组件,如图2.59所示。要显示3、2、1、0四个数字,程序需要1.png、2.png.3.png.0.png四张图片素材(注释:1.png是显示“1”的图片,2.png是显示“2”的图片,3.png显示“3”的图片,0.png是显示“0”图片)。代码说明:计时的开始与结束主要是通过控制计时器的“启用计时”属性实现的。设计界面时,先将“计时器1"的属性面板中“启用计时”勾选项取消,并且设定时间间隔为1000毫秒。当用户点击“按钮1”时再启用计时器计时事件。通过计时器“达,到计时点”事件与变量n的累减配合实现倒计时。倒计时的效果,是每隔一秒用“图像1”的图片属性显示一张数字图片。变量n不仅控制倒计时时间,同时它与".png"合并文本一起也作为“图像1”属性所需的参数。加速度传感器(AccelerometerSensor)加速度传感器用于测量x、y、z三个维度的加速度分量的近似值和检测设备的摇晃。测量结果使用加速度单位米/秒“(m/s)”表示。xAccel:手机静止水平时值为0,左侧抬高值为正,右侧抬高值为负。yAccel:手机静止水平值为0,底部抬高值为正,顶部抬高值为负。zAccel:当设备屏幕朝上水平静止值为-9.8(地球重力加速度),垂直于地面时值为0,屏幕朝下时值为9.8。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产业园项目策划与销售代理服务合同
- 小学随班就读工作总结
- 商贸公司员工绩效考核制度
- 影响职业选择的因素课件
- 科技公司信息安全管理制度
- 国土空间基础信息平台方案
- 疫情期间学校疫情防控应急演练方案
- 第二章 康复医疗机的建设课件
- 第二章 关节学课件
- “小学生个体差异教学的策略研究”课题实施方案
- 答辩状物业合同无效模板范文
- DL∕T 5156.2-2015 电力工程勘测制图标准 第2部分:岩土工程
- 英语-福建省泉州市2023~2024学年高一下学期期末教学质量监测试题和答案
- 大学生劳动教育概论智慧树知到期末考试答案章节答案2024年南昌大学
- 2023-2024学年山西省太原市高二上学期期中学业诊断数学试卷
- 网络安全技能竞赛(CTF)考试题库-下(多选、判断题)
- 2024-2030年中国留学服务行业深度分析及发展战略研究咨询报告
- 期中复习(易错50题20个考点)-苏科版八年级《数学》上册重难点专题提优训练(解析版)
- 《生物安全培训》课件-2024鲜版
- 网课智慧树知道《英美文学(山东第一医科大学)》章节测试答案
- 急性胰腺炎急诊诊治专家共识2024解读
评论
0/150
提交评论