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

Android動畫Animation之Frame實現類似電影的動畫效果

Frame 動畫,即順序播放事先做好的圖像,跟電影類似。

接下來的案例是點擊按鈕實現播放動畫,點擊停止實現停止動畫播放!

1、效果圖:

      

2、main.xml文件很簡單:

[html]

  1. <Button   
  2.         Android:layout_width="wrap_content"  
  3.         android:layout_height="wrap_content"  
  4.         android:id="@+id/button"  
  5.         android:text="開始"/>  
  6.     <Button   
  7.         android:layout_width="wrap_content"  
  8.         android:layout_height="wrap_content"  
  9.         android:id="@+id/stop"  
  10.         android:text="停止"/>  
  11.     <ImageView   
  12.         android:layout_width="wrap_content"  
  13.         android:layout_height="wrap_content"  
  14.         android:layout_gravity="center_vertical"  
  15.         android:id="@+id/image"/>  
3、然後在drawable文件夾下定義一個frame.xml,為的是把所有的圖片都定義在該xml文件中,它是一個animation列表,存放所有使用到的圖片!!
[html]
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <animation-list xmlns:android="http://schemas.android.com/apk/res/android" >  
  3. <item android:drawable="@drawable/girl_1" android:duration="100" />  
  4.     <item android:drawable="@drawable/girl_2" android:duration="100" />  
  5.     <item android:drawable="@drawable/girl_3" android:duration="100" />  
  6.     <item android:drawable="@drawable/girl_4" android:duration="100" />  
  7.     <item android:drawable="@drawable/girl_5" android:duration="200" />  
  8.     <item android:drawable="@drawable/girl_6" android:duration="500" />  
  9.     <item android:drawable="@drawable/girl_7" android:duration="500" />  
  10.     <item android:drawable="@drawable/girl_8" android:duration="200" />  
  11.     <item android:drawable="@drawable/girl_9" android:duration="100" />  
  12.     <item android:drawable="@drawable/girl_10" android:duration="100" />  
  13.     <item android:drawable="@drawable/girl_11" android:duration="100" />  
  14. </animation-list>  
每個item裡面有個duration屬性,該屬性為了使該圖片持續多長時間!!

4、最後是java代碼:

[java]

  1. package cn.csdn.anim;  
  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 FrameActivity extends Activity implements OnClickListener {  
  12.     private Button button, stop;  
  13.     private ImageView image;  
  14.     private AnimationDrawable attackAnimation;//定義動畫的對象   
  15.   
  16.     @Override  
  17.     protected void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.main);  
  20.         init();  
  21.     }  
  22.   
  23.     private void init() {  
  24.         image = (ImageView) findViewById(R.id.image);//顯示動畫的imageview   
  25.         button = (Button) findViewById(R.id.button);//開始動畫   
  26.         stop = (Button) findViewById(R.id.stop);//停止動畫   
  27.         button.setOnClickListener(this);  
  28.         stop.setOnClickListener(this);  
  29.         image.setBackgroundResource(R.drawable.frame);//設置顯示動畫的image的背景資源參數是int,就是你自己寫的frame.xml,裡面是所有相關的圖片   
  30.         attackAnimation = (AnimationDrawable) image.getBackground();  
  31.     }  
  32.   
  33.     @Override  
  34.     public void onClick(View v) {  
  35.         switch (v.getId()) {  
  36.         case R.id.button:  
  37.             attackAnimation.start();//開始動畫   
  38.             break;  
  39.         case R.id.stop:  
  40.             attackAnimation.stop();//停止動畫   
  41.             break;  
  42.         }  
  43.     }  
  44. }  


AnimationDrawable類是:


An object used to create frame-by-frame animations, defined by a series of Drawable objects, which can be used as a View object's background.

The simplest way to create a frame-by-frame animation is to define the animation in an XML file, placed in the res/drawable/ folder, and set it as the background to a View object. Then, call start() to run the animation.

An AnimationDrawable defined in XML consists of a single <animation-list> element, and a series of nested <item> tags. Each item defines a frame of the animation.

一個對象用於創建frame-by-frame動畫,其定義是由一系列的可畫的對象,可以使用作為一個視圖對象的背景情況。


最簡單的方法來創建一個frame-by-frame動畫定義動畫在XML文件中,放置在雜志/可畫/文件夾,並將它設置為背景,一個視圖對象。然後,叫開始()運行的動畫。


定義一個AnimationDrawable在XML組成一個單一的< animation-list >元素,一系列的嵌套的<項目>標簽。 每一項定義了一個幀動畫
Copyright © Linux教程網 All Rights Reserved