Android动画介绍:Android为我们提供了两种动画实现,Frame和Tween。
两者之间的区别:
1.Frame动画:就像放电影一样,是通过预先做好的图片进行连续播放从而形成动画效果
2.Tween动画:通过对图片设置平移、缩放、旋转、改变透明度等方式来显示动画效果
本节仅讲Frame动画,
Frame动画是通过AnimationDrawable来实现的,它提供了start()和stop()两个方法,对播放的动画进行控制,一般通过XML文件配置,在工程的res/anim目录下创建一个XML配置文件,该配置文件有一个<animation-list>根元素和若干个<item>子元素。
废话就不说了,下面将贴出该例子的完整代码,供大家测试使用:
一、FrameActivity
package com.yw.myapiupdate.frame;import com.yw.myapiupdate.R;import android.app.Activity;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;/** * * 实现动画轮询播放 * @author yw-tony * */public class FrameActivity extends Activity implements OnClickListener{ private Button btn_start; private Button btn_end; private ImageView iv; private AnimationDrawable ad; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.frame_layout); initViews(); } private void initViews(){ btn_start = (Button)findViewById(R.id.frame_btn_start); btn_end = (Button)findViewById(R.id.frame_btn_end); iv = (ImageView)findViewById(R.id.frame_iv); btn_start.setOnClickListener(this); btn_end.setOnClickListener(this); this.ad = (AnimationDrawable)iv.getBackground(); } private void startAnimation(){ this.ad.start(); } private void stopAnimation(){ this.ad.stop(); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.frame_btn_start: startAnimation(); break; case R.id.frame_btn_end: stopAnimation(); break; } }}
与之对应的xml文件
二、设置动画的xml文件
下面是源代码以及资源文件的下载地址:
http://files.cnblogs.com/tony-yang-flutter/anni.zip