Android圖片動畫播放(AnimationDrawable)

openkk 12年前發布 | 69K 次閱讀 Android Android開發 移動開發

Android圖片動畫播放(AnimationDrawable)

大家平時見到的最多的可能就是Frame動畫了,Android中當然也少不了它。它的使用更加簡單,只需要創建一個

AnimationDrawabledF對象來表示Frame動畫,然后通過addFrame 方法把每一幀要顯示的內容添加進去,并設置播放間隔時間,本例子中間隔時間為5S,

最后通過start 方法就可。

以播放這個動畫了,同時還可以通過 setOneShot方法設置是否重復播放。

package xiaosi.bu;

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;

public class TupianActivity extends Activity {
    /** Called when the activity is first created. */
    private Button start = null;
    private Button stop = null;
    private ImageView image = null;
    private AnimationDrawable animationDrawable = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        start = (Button)findViewById(R.id.start);
        start.setOnClickListener(new StartListener());
        stop = (Button)findViewById(R.id.stop);
        stop.setOnClickListener(new StopListener());

        image = (ImageView)findViewById(R.id.imageview);

        animationDrawable = new AnimationDrawable();
        for(int i =0;i<8;i++){
            //第一個 就是我們的資源名稱(圖片名)  
            //第二個 就是我們存放圖片的文件夾drawable  
            //第三個 包名也可以用Context的getPackageName返回應用程序的包名  
            int id = getResources().getIdentifier( "a"+i, "drawable", "xiaosi.bu");
            System.out.println("ID:" + id);
            animationDrawable.addFrame(getResources().getDrawable(id), 2000);
        }
      //設置手否重復播放,false為重復
        animationDrawable.setOneShot(false);
        image.setImageDrawable(animationDrawable);

    }
    private class StartListener implements OnClickListener{

        public void onClick(View v)
        {
            animationDrawable.start();
        }
    }

    private class StopListener implements OnClickListener{

        public void onClick(View v)
        {
            animationDrawable.stop();  
        }
    }
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" 
        android:layout_width="fill_parent"
       android:layout_height="fill_parent">
       <LinearLayout
        android:orientation="horizontal" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
       <Button android:id="@+id/start"
           android:text="Start" 
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"/>
       <Button android:id="@+id/stop"
           android:text="End"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"/>
       </LinearLayout>
       <ImageView android:id="@+id/imageview" 
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
           android:scaleType="fitXY" 
           android:background="#ffffff" />
 </LinearLayout>
轉自:http://blog.csdn.net/sjf0115/article/details/7265307

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!