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