Android物联网应用程序开发-项目七 媒体动画的实现-任务4:通风风扇动画演示_第1页
Android物联网应用程序开发-项目七 媒体动画的实现-任务4:通风风扇动画演示_第2页
Android物联网应用程序开发-项目七 媒体动画的实现-任务4:通风风扇动画演示_第3页
Android物联网应用程序开发-项目七 媒体动画的实现-任务4:通风风扇动画演示_第4页
Android物联网应用程序开发-项目七 媒体动画的实现-任务4:通风风扇动画演示_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android物联网应用程序开发资源转化系统教材辽宁轻工职业学院辽宁轻工职业学院任务实现知识准备任务目标目录

辽宁轻工职业学院任务4通风风扇动画演示项目7媒体动画的实现辽宁轻工职业学院在农业大棚界面中,点击风扇图片风扇动画开始显示风扇转动,再次点击风扇停止。当人体传感器读取到有人时界面中的门动画开启,无人时门关闭。辽宁轻工职业学院【任务目标】1.掌握Android下Tween动画的实现2.掌握Android下Frame动画的实现3.掌握Android下如何播放GIF动画文件1.Tweem动画辽宁轻工职业学院【知识准备】Android平台的动画分三个部分,在Android3.0版本以前支持两种动画,分别为补间动画(TweenAnimation)和逐帧动画(FrameAnimation);在Android3.0版本中新加入的动画叫属性动画(PropertyAnimation)。根据我们具体的要求我们只介绍前两种动画。Tween动画是通过对场景中的对象不断做图像变换(平移、缩放、旋转、改变透明度)产生动画效果,但是该动画只能应用于View对象,并且只支持一部分属性,如支持缩放旋转而不支持背景颜色的改变。该动画实现方式其实就是预先定义一组指令,这些指令指定了图形变换的类型、触发时间、持续时间。这些指令可以是以XML文件方式定义,也可以是以源代码方式定义。程序沿着时间线执行这些指令就可以实现动画效果。1.Tweem动画辽宁轻工职业学院【知识准备】(1)使用XML来定义Tween动画

动画的XML文件在工程中res/anim目录,这个文件必须包含一个根元素,可以使<alpha><scale><translate><rotate>插值元素或者是把上面的元素都放入<set>元素组中,默认情况下,所有的动画指令都是同时发生的,为了让他们按序列发生,需要设置一个特殊的属性startOffset。1.Tweem动画辽宁轻工职业学院【知识准备】(2)在代码中定义动画:核心代码如下:privateAnimationmyAnimation_Alpha;privateAnimationmyAnimation_Scale;privateAnimationmyAnimation_Translate;privateAnimationmyAnimation_Rotate;//根据各自的构造方法来初始化一个实例对象

myAnimation_Alpha=newAlphaAnimation(0.1f,1.0f);myAnimation_Scale=newScaleAnimation(0.0f,1.4f,0.0f,1.4f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);myAnimation_Translate=newTranslateAnimation(30.0f,-80.0f,30.0f,300.0f);myAnimation_Rotate=newRotateAnimation(0.0f,+350.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);1.Tweem动画辽宁轻工职业学院【知识准备】(3)实现原理Tween动画是建立在View的级别上的,在View类中有一个接口startAnimation来使动画开始,startAnimation函数会将一个Animation类别的参数传给View,这个Animation是用来指定我们使用的是哪种动画,现有的动画有平移,缩放,旋转以及alpha变换等。每一个窗口就是一棵View树,绘制整个窗口需要按顺序执行以下几个步骤:1.Tweem动画辽宁轻工职业学院【知识准备】1)绘制背景;

2)如果需要,保存画布(canvas)的层为淡入或淡出做准备;

3)绘制View本身的内容,通过调用View.onDraw(canvas)函数实现,通过这个我们应该能看出来onDraw函数重载的重要性,onDraw函数中绘制线条/圆/文字等功能会调用Canvas中对应的功能。下面我们会drawLine函数为例进行说明;

1.Tweem动画辽宁轻工职业学院【知识准备】4)绘制自己的孩子(通常也是一个view系统),通过dispatchDraw(canvas)实现,参看ViewGroup.Java中的代码可知,dispatchDraw->drawChild->child.draw(canvas)这样的调用过程被用来保证每个子View的draw函数都被调用,通过这种递归调用从而让整个View树中的所有View的内容都得到绘制。5)如果需要,绘制淡入淡出相关的内容并恢复保存的画布所在的层(layer)

6)绘制修饰的内容(例如滚动条),这个可知要实现滚动条效果并不需要ScrollView,可以在View中完成的。

2.Frame动画辽宁轻工职业学院【知识准备】Frame动画是顺序播放事先准备好的图像,类似于放电影。其实现方式比较简单,实现过程如下:在XML中的定义方式如下<animation-listxmlns:android=/apk/res/androidandroid:oneshot="true"><itemandroid:drawable="@drawable/pic1"android:duration="200"/><itemandroid:drawable="@drawable/pic2"android:duration="200"/><itemandroid:drawable="@drawable/pic3"android:duration="200"/></animation-list>2.Frame动画辽宁轻工职业学院【知识准备】

必须以<animation-list>为根元素,以<item>表示要轮换显示的图片,duration属性表示各项显示的时间。XML文件要放在/res/drawable/目录下ImageViewimageView=(ImageView)findViewById(R.id.imageView1);imageView.setBackgroundResource(R.drawable.drawable_anim);anim=(AnimationDrawable)imageView.getBackground();anim.start();此处要注意一点:

要用AnimationDrawable的start()方法来启动动画,不管动画是否完毕,想要第二次启动动画一定要先调用它的stop()方法才可以再次启动动画。3.GIF动画播放辽宁轻工职业学院【知识准备】在默认情况下,在Android平台上是不能播放GIF动画的。要想播放GIF动画,需要先对GIF图像进行解码,然后将GIF中的每一帧取出来保存到一个容器中,然后根据需要连续绘制每一帧,这样就可以实现GIF动画的播放。辽宁轻工职业学院【任务实现】

1.创建一个Android工程,命名为AndroidDemo7_4,并项目2任务8完成的布局界面导入到本项目中。2.自定义BasePort.java类,在此类中完成串口打开与关闭功能。3.自定义ADAM4150.java类实现读取人体传感器的值,并通过串口实现打开关闭风扇功能。4.将所需图片导入到drawable-hdpi文件夹中。在res文件夹中新建anim文件夹,新建door_close.xml和door_start.xml文件完成间隔为40ms的补间动画。辽宁轻工职业学院【任务实现】

5.使用<rotate/>标签实现风扇转动动画。6.在MainActivity.java类中自定义initView()方法实现对控件的初始化,加载动画放入Animation对象中同时设置设置动画变化速度为匀速。7.使用Handler对象判定读取到的人体传感器的值,并在UI界面中显示动画。在initV()方法中延时调用此handler实例化ADAM4150类库打开串口。辽宁轻工职业学院【任务实现】

8.新建initListener()方法完成风扇图片的单击事件即点击风扇图片,界面中风扇转动动画开始,设备上的风扇转动,再次点击动画关闭,设备上的风扇同时关闭。本章总结:在本章中介绍了有关多媒体开发的And

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论