歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved