鲲鹏it教育android课件-29 .动画开发技术_第1页
鲲鹏it教育android课件-29 .动画开发技术_第2页
鲲鹏it教育android课件-29 .动画开发技术_第3页
鲲鹏it教育android课件-29 .动画开发技术_第4页
鲲鹏it教育android课件-29 .动画开发技术_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

信赖源于专业Android动画开发技术信赖源于专业要解决的问题常见动画分类有哪些?Android中动画实现的方式有哪些?信赖源于专业相关技术动画原理与分类实现Tween渐变动画实现Frame帧动画信赖源于专业动画实现Tween渐变动画对场景中对象进行图像变换,如平移、缩放、旋转。Frame帧动画顺序播放事先做好的图像,如电影。绘制图片与动画2D的图像库,两个包分别是android.graphics.drawable和android.view.animation信赖源于专业实现方法Android动画的两种实现方法:在XML中配置一个动画,或者配置多个动画,然后在代码中加载,如下代码所示:抛开XML,在代码中直接定义一个动画,如下所示:myAnimation_Alpha=AnimationUtils.loadAnimation(R.anim.alpha_action);AnimationmyAnimation_Alpha=newAlphaAnimation(0.1f,1.0f);信赖源于专业TweenTween动画效果的变换主要有以下几种:AlphaAnimation 透明度改变RotateAnimation 旋转ScaleAnimation 缩放TranslateAnimation 平移信赖源于专业Tween使用XML配置动画时可以使用如下几类标签:<alpha> 渐变透明度动画效果<scale> 渐变尺寸伸缩动画效果<translate> 画面转换位置移动动画效果<rotate> 画面转移旋转动画效果信赖源于专业TweenXML中配置渐变透明动画效果的代码fromAlpha/toAlpha属性为动画起始/结束时透明度;透明度的值取0.0-1.0之间的float类型数据,0.0表示完全透明,1.0表示完全不透明duration

属性为动画持续时间

,毫秒为单位<!--透明--><alphaandroid:fromAlpha=”0.1″android:toAlpha=”1.0″android:duration=”3000″/>信赖源于专业TweenXML中配置渐变尺寸伸缩动画效果的代码<!--缩放--> <scaleandroid:interpolator=“@android:anim/accelerate_decelerate_interpolator”android:fromXScale=”0.0″ android:toXScale=”1.4″ android:fromYScale=”0.0″ android:toYScale=”1.4″ android:pivotX=”50%” android:pivotY=”50%” android:fillAfter=”false” android:startOffset=“700” android:duration=”700″/>信赖源于专业TweenXML中配置渐变尺寸伸缩动画效果accelerate_decelerate_interpolator

是加速-减速动画插入器fromXScale/fromYScale(toXScale/toYScale)动画起始(结束)时X、Y坐标的伸缩度,0.0表示收缩到没有,1.0表示无伸缩,值小于1.0表示收缩,值大于1.0表示放大pivotX[float]/pivotY[float]为动画相对于物件的X、Y坐标的开始位置,从0%-100%中取值信赖源于专业TweenXML中配置画面转换位置移动动画效果代码fromXDelta/fromYDelta(toXDelta/toYDelta)动画起始(结束)时X,Y坐标上的位置<!--平移--><translate

android:fromXDelta="30"

android:toXDelta="-80"

android:fromYDelta="30"

android:toYDelta="300"

android:duration="2000"

/>

信赖源于专业TweenXML中配置画面转移旋转动画效果代码fromDegrees动画起始时物件的角度,toDegrees动画结束时物件旋转的角度,可大于360度,为负(正)数表示逆(顺)时针旋转<!--旋转--><rotate android:interpolator=”@android:anim/accelerate_decelerate_interpolator” android:fromDegrees=”0″ android:toDegrees=”+350″ android:pivotX=”50%” android:pivotY=”50%” android:duration=”3000″/>信赖源于专业TweenJava代码中直接定义动画的步骤首先,利用AlphaAnimation、RotateAnimation、ScaleAnimation、TranslateAnimationScaleAnimation创建动画接下来,当创建完成后,需要用setDuration方法设置动画的时间最后,使用startAnimation方法播放动画信赖源于专业TweenJava代码中直接定义scale()动画代码如下publicbooleanscale(){ //创建Scale动画 Scale=newScaleAnimation(0.0f,1.0f,0.0f,1.0f, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0.5f); //设置动画的时间 Scale.setDuration(2000); //开始播放动画 this.startAnimation(Scale); returntrue;}信赖源于专业TweenJava代码中直接定义translate()动画如下publicbooleantranslate(){ //创建Translate动画 Translate=newTranslateAnimation(10,150,10,150); //设置动画的时间 Translate.setDuration(1000); //开始播放动画 this.startAnimation(Translate); returntrue;}信赖源于专业代码实现Tween动画1/*装载资源*/BitmapmBitQQmBitQQ=((BitmapDrawable) getResources().getDrawable(R.drawable.qq)).getBitmap();/*绘制图片*/canvas.drawBitmap(mBitQQ,0,0,null);

/*创建Alpha动画*/privateAnimationmAnimationAlpha=newAlphaAnimation(0.1f,1.0f);/*设置动画的时间*/mAnimationAlpha.setDuration(3000);/*开始播放动画*/this.startAnimation(mAnimationAlpha);

/*创建Scale动画*/privateAnimation mAnimationScale =newScaleAnimation(0.0f,1.0f,0.0f,1.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);/*设置动画的时间*/mAnimationScale.setDuration(500);/*开始播放动画*/this.startAnimation(mAnimationScale);信赖源于专业代码实现Tween动画2/*创建Translate动画*/privateAnimationmAnimationTranslate=newTranslateAnimation(10,100,10,100);/*设置动画的时间*/mAnimationTranslate.setDuration(1000);/*开始播放动画*/this.startAnimation(mAnimationTranslate);

/*创建Rotate动画*/privateAnimationmAnimationRotate=newRotateAnimation(0.0f,+360.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);/*设置动画的时间*/mAnimationRotate.setDuration(1000);/*开始播放动画*/this.startAnimation(mAnimationRotate); 信赖源于专业代码实现Tween动画:main.xml<LinearLayoutxmlns:android=""android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/><Buttonandroid:id="@+id/AlphaAnimation"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Alpha动画"/><Buttonandroid:id="@+id/ScaleAnimation"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Scale动画"/><Buttonandroid:id="@+id/TranslateAnimation"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Translate动画"/><Buttonandroid:id="@+id/RotateAnimation"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Rotate动画"/></LinearLayout>**

案例AnimationDemo信赖源于专业XML布局实现Tween动画/*装载动画布局*/mAnimationAlpha=AnimationUtils.loadAnimation(mContext,R.anim.alpha_animation);/*开始播放动画*/this.startAnimation(mAnimationAlpha);/*装载动画布局*/mAnimationScale=AnimationUtils.loadAnimation(mContext,R.anim.scale_animation);this.startAnimation(mAnimationScale);/*装载动画布局*/mAnimationTranslate=AnimationUtils.loadAnimation(mContext,R.anim.translate_animation);this.startAnimation(mAnimationTranslate);/*装载动画布局*/mAnimationRotate=AnimationUtils.loadAnimation(mContext,R.anim.rotate_animation);this.startAnimation(mAnimationRotate); 信赖源于专业R.anim.alpha_animation<setxmlns:android=""><alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="2000"/></set>信赖源于专业R.anim.scale_animation<setxmlns:android=""><scaleandroid:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:fromXScale="0.0"android:toXScale="1.0"

android:fromYScale="0.0"android:toYScale="1.0"

android:pivotX="50%"android:pivotY="50%"

android:fillAfter="false"android:duration="500"/></set>信赖源于专业R.anim.translate_animation<setxmlns:android=""><translate android:fromXDelta="10" android:toXDelta="100" android:fromYDelta="10" android:toYDelta="100" android:duration="1000"/></set>信赖源于专业R.anim.rotate_animation<setxmlns:android=""><rotateandroid:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:fromDegrees="0"android:toDegrees="+360"

android:pivotX="50%"android:pivotY="50%"

android:duration="1000"/></set>**

案例AnimationDemo2信赖源于专业代码实现Frame动画 /*实例化AnimationDrawable对象*/ privateAnimationDrawableframeAnimation=newAnimationDrawable(); /*装载资源*/ //这里用一个循环了装载所有名字类似的资源,如“a1.......15.png”的图片

for(inti=1;i<=15;i++){ intid=getResources().getIdentifier("a"+i,"drawable", mContext.getPackageName()); DrawablemBitAnimation=getResources().getDrawable(id); /*为动画添加一帧*/ //参数mBitAnimation是该帧的图片

//参数500是该帧显示的时间,按毫秒计算

frameAnimation.addFrame(mBitAnimation,500); } /*设置播放模式是否循环false表示循环而true表示不循环*/

frameAnimation.setOneShot(false); /*设置本类将要显示这个动画*/ this.setBackgroundDrawable(frameAnimation); /*开始播放动画*/

frameAnimation.start();**案例AnimationDrawableDemo信赖源于专业XML实现Frame动画/*定义AnimationDrawable动画对象*/privateAnimationDrawableframeAnimation=null;/*定义一个ImageView用来显示动画*/ImageViewimg=newImageView(mContext);/*装载动画布局文件*/img.setBackgroundResource(R.anim.frameanimation); /*构建动画*/privateAnimationDrawableframeAnimation=(AnimationDrawable)img.getBackground();/*设置是否循环*/frameAnimation.setOneShot(false);/*设置该类显示的动画*/this.setBackgroundDrawable(frameAnimation);/*开始播放动画*/frameAnimation.start();信赖源于专业frameanimation.xml<animation-listxmlns:android=""android:oneshot="false"><itemandroid:drawable="@drawable/a1"android:duration="500"/><itemandroid:drawable="@drawable/a2"android:duration="500"/><itemandroid:drawable="@drawable/a3"android:duration="500"/><itemandroid:drawable="@drawable/a4"android:duration="500"/><itemandroid:drawable="@drawable/a5"android:duration="500"/><itemandroid:drawable="@drawable/a6"android:duration="500"/><itemandroid:drawable="@drawable/a7"android:duration="500"/><itemandroid:drawable="@drawable/a8"android:duration="500"/><itemandroid:drawable="@drawable/a9"android:duration="500"/><itemandroid:drawable="@drawable/a10"android:duration="500"/><itemandroid:drawable="@drawable/a11"android:duration="500"/><itemandroid:drawable="@drawable/a12"android:duration="500"/><itemandroid:drawable="@drawable/a13"android:duration="500"/><itemandroid:drawable="@drawable/a14"android:duration="500"/><itemandroid:drawable="@drawable/a15"android:duration="500"/></animation-list>**案例AnimationDrawableDemo2信赖源于专业Frame在XML中定义Frame动画,每个节点定义一帧动画,包括此帧动画的资源和持续时间,如下然后在代码中用方法setBackgroundResource(R.anim.frameanimation)即可装载布局中定义的动画<animation-list xmlns:android=”” android:oneshot=”true”> <itemandroid:drawable=”@drawable/a1″android:duration=”500″/> <itemandroid:drawable=”@drawable/a2″android:duration=”500″/> <itemandroid:drawable=”@drawable/a3″android:duration=”500″/> <itemandroid:drawable=”@drawable/a4″android:duration=”500″/> <itemandroid:drawable=”@drawable/a5″android:duration=”500″/> </animation-list>信赖源于专业FrameJava代码中直接定义Frame动画首先,创建一个AnimationDrawable对象来表示Frame动画接下来,通过addFrame方法把图像的每一帧显示内容添加进去即可信赖源于专业FrameJava代码中直接定义Frame动画frameAnimation=newAnimationDrawable(); //装载动画各个帧for(inti=1;i<=num;i++){ intid=getResources().getIdentifier(name1+i,"drawable",context.getPackageName()); drawable=getResources().get

温馨提示

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

评论

0/150

提交评论