1. 程式人生 > >教您如何讓Gif動畫動起來(表情)

教您如何讓Gif動畫動起來(表情)

本文將為講解Android中Gif圖片播放的教程。Android 中是不支援直接使用Gif 圖片關聯播放幀動畫,如下動畫在Android 中是無法播放的,我們將教會您使用有效方法讓Gif圖片在Android下動起來。

使用軟體:easygifanimator

<?xml version="1.0" encoding="UTF-8"?> 
<animation-list android:oneshot="false" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:duration="150" android:drawable="@drawable/xiu0" /> 
    <item android:duration="150" android:drawable="@drawable/xiu1" /> 
    <item android:duration="150" android:drawable="@drawable/xiu2" /> 
    <item android:duration="150" android:drawable="@drawable/xiu3" /> 
</animation-list>   

對應的item 為順序的圖片從開始到結束,duration為每張逐幀播放間隔,oneshot 為false 代表迴圈播放,設定為true 即播放一次即停止。

對應Activity 程式碼如下編寫:

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.ImageView;  
 
public class animActivity extends Activity implements OnClickListener {  
    ImageView iv = null;  
 
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
 
        iv = (ImageView) findViewById(R.id.ImageView01);  
        iv.setOnClickListener(this);  
    }  
 
    @Override  
    public void onClick(View v) {  
        // TODO Auto-generated method stub  
        AnimationDrawable anim = null;  
        Object ob = iv.getBackground();  
        anim = (AnimationDrawable) ob;  
        anim.stop();  
        anim.start();  
    }  
}  

使用AnimationDrawable 物件獲得圖片的圖片,然後指定這個AnimationDrawable 開始播放動畫

Tip:使用此方法不會預設播放,必須要有事件觸發才可播放動畫,如上面的通過點選監聽觸發動畫的播放

那麼如何使用圖片自動播放呢?我們可以聯想一下,ProgressBar 是不是預設的時候就會轉,那就是那個圓形的進度條,是的。我們可以對它進行改造合它也可以自動播放,在Values 檔案下新建一個styles 檔案,編寫如下程式碼 :

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
    <style name="animStyle" parent="@android:style/Widget.ProgressBar.Large"> 
        <item name="android:indeterminateDrawable">@anim/test</item> 
    </style> 
</resources>  
上面樣式檔案自Widget.ProgressBar.Large 為其設定動畫檔案,我們在XML中就可以通過設定它的樣式使其為我們工作
<ProgressBar android:id="@+id/ProgressBar01" style="@style/animStyle" 
    android:layout_width="128px" android:layout_height="128px"></ProgressBar>