【專題】Android Frame動畫

Android Frame動畫是指幀動畫,若是你瞭解flash相關,就知道幀動畫是把一幀幀的對象組成起來,而後一幀一幀的播放,跟電影播放差很少。java

什麼狀況下會使用幀動畫呢?android

下面就來個實際的項目例子例子,web

原本想添加個實際項目裏的GIF動畫的,結果發現沒有軟件錄屏幕。動畫

Android 幀動畫 能夠經過兩種方式來設置加載動畫,一種是直接配置xml文件的形式,第二種是直接經過過代碼的形式。spa

下面來看第一種,code

建立動畫xml文件orm

路徑: /res/anim/shutter.xmlxml

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@drawable/shutter0" android:duration="100" />   
<item android:drawable="@drawable/shutter1" android:duration="100" />   
<item android:drawable="@drawable/shutter2" android:duration="100" />    
</animation-list>

在Activity中使用
對象

ImageView img = (ImageView)findViewById(R.id.spinning_wheel_image);
img.setBackgroundResource(R.anim.shutter;
AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
frameAnimation.start();    // 開始動畫
frameAnimation.stop();    // 中止動畫
frameAnimation.setOneShot(false);   // 設置不循環播放
frameAnimation.isRunning();            // 是否在播放動畫

再來看第二種get

在Activity中使用

private int[] frame = new int[] {R.drawable.shutter0, R.drawable.shutter1, R.drawable.shutter2};
AnimationDrawable frameAnimation = new AnimationDrawable()
for (int id : frame) {
    Drawable frame =  activity.getResources().getDrawable(id);   frameAnimation.addFrame(frame, 1000);
}frameAnimation.setOneShot(false);
frameAnimation.start();    // 開始動畫
frameAnimation.stop();    // 中止動畫
frameAnimation.setOneShot(false);   // 設置不循環播放
frameAnimation.isRunning();            // 是否在播放動畫
相關文章
相關標籤/搜索