Android --- Frame动画示例


Frame动画:

1、找到一组图片c01.jpg,c02.jpg,c03.jpg,c04.jpg,c05.jpg,copy到res/drawable目录下;

2、在res/drawable目录下新建XML文件:frame_anim.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <animation-list  
  3.   xmlns:Android="http://schemas.android.com/apk/res/android" android:oneshot="false">  
  4.  <item android:drawable="@drawable/c01" android:duration="500"/>  
  5.  <item android:drawable="@drawable/c02" android:duration="500"/>  
  6.  <item android:drawable="@drawable/c03" android:duration="500"/>  
  7.  <item android:drawable="@drawable/c04" android:duration="500"/>  
  8.  <item android:drawable="@drawable/c05" android:duration="500"/>  
  9. </animation-list>  

3、在res/layout目录下新建XML文件:frame_anim_layout.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout  
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:orientation="vertical"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent">  
  7.     <ImageView  
  8.         android:layout_width="wrap_content"  
  9.         android:layout_height="wrap_content"  
  10.         android:scaleType="centerInside"  
  11.         android:id="@+id/imgFrame"  
  12.         android:background="@drawable/frame_anim"></ImageView>  
  13.     <LinearLayout  
  14.         android:layout_width="match_parent"  
  15.         android:layout_height="wrap_content">  
  16.         <Button  
  17.             android:text="开始"  
  18.             android:id="@+id/btnStart"  
  19.             android:layout_width="wrap_content"  
  20.             android:layout_height="wrap_content"  
  21.             android:layout_weight="1.0"></Button>  
  22.         <Button  
  23.             android:text="结束"  
  24.             android:id="@+id/btnEnd"  
  25.             android:layout_width="wrap_content"  
  26.             android:layout_height="wrap_content"  
  27.             android:layout_weight="1.0"></Button>  
  28.     </LinearLayout>  
  29. </LinearLayout>  

4、Activity文件中的代码:

  1. package com.bison;  
  2.   
  3. import android.app.Activity;  
  4. import android.graphics.drawable.AnimationDrawable;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9. import android.widget.ImageView;  
  10.   
  11. public class AnimationDemoActivity extends Activity implements OnClickListener {  
  12.     // 开始按钮   
  13.     private Button btnStart;  
  14.     // 结束按钮   
  15.     private Button btnEnd;  
  16.     private ImageView imgFrame;  
  17.     // 声明Frame动画对象   
  18.     private AnimationDrawable frameAnim;  
  19.   
  20.     /** 初始化 */  
  21.     public void init() {  
  22.         btnStart = (Button) findViewById(R.id.btnStart);  
  23.         btnEnd = (Button) findViewById(R.id.btnEnd);  
  24.         btnStart.setOnClickListener(this);  
  25.         btnEnd.setOnClickListener(this);  
  26.   
  27.         imgFrame = (ImageView) findViewById(R.id.imgFrame);  
  28.         // 将ImageView的backgroud声明给Frame动画对象   
  29.         frameAnim = (AnimationDrawable) imgFrame.getBackground();  
  30.     }  
  31.   
  32.     @Override  
  33.     public void onCreate(Bundle savedInstanceState) {  
  34.         super.onCreate(savedInstanceState);  
  35.         // 加载layout.frame_anim_layout页面   
  36.         setContentView(R.layout.frame_anim_layout);  
  37.         init();  
  38.     }  
  39.   
  40.     public void onClick(View v) {  
  41.         // 判断按钮事件   
  42.         switch (v.getId()) {  
  43.         case R.id.btnStart:  
  44.             frameAnim.start();  
  45.             break;  
  46.         case R.id.btnEnd:  
  47.             frameAnim.stop();  
  48.             break;  
  49.         }  
  50.     }  
  51. }  

PS:Frame动画原理类似于电影胶片,一幕一幕的闪过,在人的视觉停留期快速变动,形成组图,产生动画。

更多Android相关信息见Android 专题页面 http://www.bkjia.com/topicnews.aspx?tid=11

相关内容