实现逐帧动画和补间动画两种动画效果

1.逐帧动画(Frame Animation)
通常在Android项目的res/drawable/目录下面定义逐帧动画的XML模板文件。编码的时候,需要在动画模板文件的<animation-list>标签中依次放入需要播放的图片,并设置好播放的间隔时间。

<animation-list
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:oneshot="false">
	<item android:drawable="@drawable/a001" android:duration="100"/>
	<item android:drawable="@drawable/a002" android:duration="100"/>
	<item android:drawable="@drawable/a003" android:duration="100"/>
	<!-- (省略) -->
</animation-list>

注意:逐帧动画并不能独立使用,动画效果的显示还是要借助于ImageView图像控件。
举例:(ImageView元素的id为m_image_view,上面的动画模板文件名为m_frame_animation)

public class MainActivity extends Activity {

	AnimationDrawable mAnimationDrawable;	

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		ImageView mImageView = (ImageView) findViewById(R.id.m_image_view);
		mImageView.setBackgroundResource(R.drawable.m_frame_animation);
		mAnimationDrawable = mImageView.getBackground();
		mAnimationDrawable.start();
	}

	@Override
	public void onPause() {
		super.onPause();
		mAnimationDrawable.stop();
	}

}

2.补间动画(Tween Animation)
逐帧动画通过连续播放图片来模拟动画的效果,而补间动画则是通过在两个关键帧之间补充简便的动画效果来实现的。
目前Android应用框架支持的补间动画效果有以下5种。具体实现在android.view.animation类库中。
+AlphaAnimation:透明度(alpha)渐变效果,对应<alpha/>标签。
+TranslateAnimation:位移渐变,需要指定移动点的开始和结束坐标,对应<translate/>标签。
+ScaleAnimation:缩放渐变,可以指定缩放的参考点,对应<scale/>标签。
+RotateAnimation:旋转渐变,可以指定旋转的参考点,对应<rotate/>标签。
+AnimationSet:组合渐变,支持组合多种渐变效果,对应<set/>标签。
补间动画的效果同样可以使用XML语言来定义,这些动画模板文件通常会被放在Android项目的res/anim/目录下。

<set xmlns:android="http://schemas.android.com/apk/res/android"
	android:interpolator="@android:anim/decelerate_interpolator">
	<!-- 在1000ms(1秒)时间内,从透明度0(完全透明)变成1(不透明),同时由该元素中心位置从大小为0.1(十分之一)变成1(正常) -->
	<alpha
		android:fromAlpha="0.0"
		android:toAlpha="1.0"
		android:duration="1000" />
	<scale
		android:fromXScale="0.1"
		android:toXScale="1.0"
		android:fromYScale="0.1"
		android:toYScale="1.0"
		android:duration="1000"
		android:pivotX="50%"
		android:pivotY="50%"
		android:startOffSet="100" />
</set>

举例:(ImageView元素的id为m_image_view,上面的动画模板文件名为m_tween_animation)

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		ImageView mImageView = (ImageView) findViewById(R.id.m_image_view);
		Animation mAnimation = AnimationUtils.loadAnimation(this, R.drawable.m_tween_animation);
		mImageView.startAnimation(mAnimation);
	}

}
时间: 2024-10-08 10:08:39

实现逐帧动画和补间动画两种动画效果的相关文章

Android动画--帧动画和补间动画

帧动画 首先我们定义在drawable文件夹下定义一个xml文件 里面包含我们要播放的动画的图片,以及每一帧动画的播放的时长 <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mi

Android动画效果——1.帧动画2.补间动画3.跳转画面(三)

Android--动画效果1.帧动画2.补间动画3.跳转画面 插值器类 xml属性值 说明 LinearInterpolator @android:anim/linear_interpolatorr 动画以均匀的速度改变. AccelerateInterpolator @android:anim/accelerate_interpolator 在动画开始时改变速度较慢,然后开始加速. AccelerateDecelerateInterpolator @android:anim/accelerat

TimePicker控件、帧动画、补间动画

1.TimePicker控件 最近感觉每个开发平台的控件基本都差不多,在Android中控件的事件和.net控件直接写事件有一定的区别,net事件可以直接界面进行事件的绑定哈.不过在Silverlight中,如果用MVVM设计模式的话,也可以自己为控件写Command命令的,可以取代控件的事件. TimePicker控件,也就是事件控件,可以用设置时间的.在页面拖入控件后,默认是显示系统时间的. 1 <TimePicker 2 android:id="@+id/timePicker1&qu

[android] 帧动画和补间动画

逐帧显示一张图片,连起来成为动画 在res/drawable/目录下,创建一个xxx.xml的文件 添加<animation-list>节点,设置是否循环android:oneshot:”false” 添加条目<item>节点,设置资源android:drawable=”@drawable/xxx” 设置执行时间,android:duration=”100” 逐帧添加对应的图片 获取ImageView对象,通过findViewById() 调用ImageView对象的setBack

Android 动画系列之补间(Tween)动画详解

转载请标明出处: http://blog.csdn.net/Airsaid/article/details/51591239 本文出自:周游的博客 前言 开发环境 补间动画的属性 Animation的属性 Alpha属性 Rotate属性 Scale属性 Translate属性 AnimationSet属性 补间动画的使用 代码中使用补间动画 XML中定义补间动画资源AnimationDrawable 补间Tween动画与Interpolator 前言 上一篇博客中写了逐帧动画(Frame)的使

Android 学习之补间(Tween)动画

补间动画,就是开发者只需要指定动画的开始,动画的结束的"关键帧",而动画变化的"中间帧"由系统计算,并且补齐.这就是补间动画. 补间动画共分为四类: AlphaAnimation(透明动画),ScaleAnimation(缩放动画),TranslateAnimation(位移动画),RoateAnimation(旋转动画) 我们依次学习. a:透明动画 public void AlphaAnimation(View v) { //0:代表的是全透明,1代表的是全不透

比分显示控件,自带两种动画

1.效果图 这是静态的,有两种动画,运行代码后能看到 2.代码 import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.FontMetrics; import android.graphics.RectF; import android.uti

Qt程序启动画面播放(gif与swf两种动画格式)

学习Qt有一段时间了,发现一个小问题,网上关于Qt的资料或者总结性的学习及应用文章有点少. 比如,Qt完整的API,程序运行之前的启动画面如何按理想效果播放等,每次想在项目中添加一些应用的时候,总是找不到好的书籍或文章可以马上学习.上手. 今天,就把前段时间对启动画面播放的学习及尝试做一个小小的总结.如果对大家有所帮助,那自然好:如果有什么不足或有什么可以改进的地方,还望朋友们多给点意见及建议,谢谢! 过程很简单,只是建立了一个基于Qt控制台的项目,文件也只有一个——"main.cpp"

Android基础笔记(十)- 帧动画、补间动画详解、对话框

帧动画 补间动画Tween Animation 对话框以及面试中的注意点 帧动画 帧动画很简单,我们首先看一下Google官方解释This is a traditional animation in the sense that it is created with a sequence of different images. 意思表达的很明了,一个传统的动画是由一组不同的图片组成的.帧动画,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果. 创建一帧动画分为一下几步(支持4