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(); // 是否在播放動畫