700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android10打断动画 Android开发(10) 动画(Animation)

Android10打断动画 Android开发(10) 动画(Animation)

时间:2020-04-01 01:59:17

相关推荐

Android10打断动画 Android开发(10) 动画(Animation)

概述

Android SDK介绍了两种Animation:

Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种 渐变动画 ,或者说 补间动画。

Frame Animation:顺序播放事先做好的图像,是一种画面转换动画,或者说 逐帧动画。

渐变动画

4种渐变动画

alpha 渐变透明度动画效果

scale 渐变尺寸伸缩动画效果

translate 画面转换位置移动动画效果

rotate 画面转移旋转动画效果

实现动画的步骤:

1.准备一个animation对象,改对象可以看作是个动画对象,它描述(封装)了什么样式的动画。

我们可以在代码里手动创建这些对象,对应的4个animaiton对象类:

AlphaAnimation渐变透明度动画效果

ScaleAnimation渐变尺寸伸缩动画效果

TranslateAnimation画面转换位置移动动画效果

RotateAnimation画面转移旋转动画效果

XML方式

我也可以写一个描述动画的xml文件,放到资源文件的anim文件夹下。然后,在代码里加载(load)这个描述的文件:

int animationSrouceId = 0;//资源文件的ID

Animation ani1 = AnimationUtils.loadAnimation(

getApplicationContext(), animationSrouceId);

return ani1;

2.为view视图控件 指定 启动动画,调用startAnimation方法来完成。

//组件播放动画

ImageView _imageView1;

_imageView1 = (ImageView)findViewById(R.id.imageView1);

_imageView1.start Animation(ani1);

下图是我做的DEMO截图,动画的样式很难截图上来。我会在本文末尾放上源代码。

下面是xml描述的animation动画

透明alpha效果的代码:

android:fromAlpha="0.3"

android:toAlpha="1.0"

android:duration="2000"

/>

旋转(rotate)

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:fromDegrees="0"

android:toDegrees="+350"

android:pivotX="50%"

android:pivotY="50%"

android:duration="3000" />

缩放(scale)

android: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:duration="700" />

位移(translate )

android:fromXDelta="0"

android:toXDelta="50"

android:fromYDelta="0"

android:toYDelta="50"

android:duration="2000"

android:fillAfter="true"

/>

逐帧动画演示(Frame Animation)

逐帧动画就是将多张图片按顺序展示,从而产生一种动态的效果。

效果演示:

1.准备几张连续的图片,编写动画描述文件(在anim资源文件夹下新建一个XML)。

android:oneshot="true">

2.在窗体里放置一个ImageView 控件,并在代码里编写

_imageView1 = (ImageView)findViewById(R.id.imageView1);//放置的ImageView 控件

//设置动画背景

_imageView1.setBackgroundResource(R.anim.animation_list); //其中R.anim.animation_list就是上一步准备的动画描述文件的资源名

//获得动画对象

_animaition = (AnimationDrawable) _imageView1.getBackground();

3.启动动画

_animaition.setOneShot(false); //是否仅仅启动一次?

if(_animaition.isRunning())//是否正在运行?

{

_animaition.stop();//停止

}

_animaition.start();//启动

参考

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。