Android逐帧动画实现代码逐帧动画实现代码
主要为大家详细介绍了Android逐帧动画实现代码,可以通过xml或java代码实现,具有一定的参考价值,感兴趣
的小伙伴们可以参考一下
逐帧动画(Frame-by-frame Animations)顾名思义就是一帧接着一帧的播放图片,就像放电影一样。可以通过xml实现也可以
通过java代码实现。逐帧动画适合实现比较简单的动画效果,如果要实现复杂动画不太建议使用逐帧动画。
xml方式实现:
step 1 : 在res/drawable目录下一个文件sample_animlist.xml:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item
android:drawable="@mipmap/sample_1"
android:duration="100" />
<item
android:drawable="@mipmap/sample_2"
android:duration="100" />
<item
android:drawable="@mipmap/sample_3"
android:duration="100" />
<item
android:drawable="@mipmap/sample_4"
android:duration="100" />
<item
android:drawable="@mipmap/sample_5"
android:duration="100" />
<item
android:drawable="@mipmap/sample_6"
android:duration="100" />
</animation-list>
动画列表(animation-list)由一个或者多个item节点组成,item节点用来声明一个动画帧
drawable: 该帧的图片资源
duration : 播放时间 单位为毫秒
oneshot : 是否只播放一次,true表示只会播放一次,false表示一直循环播放
step 2:
利用ImageView作为播放载体
<ImageView
android:id="@+id/iv_ani"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/sample_animlist" />
step3: 在Activity实现初始化 、暂停、播放。
public class MainActivity extends AppCompatActivity {
private ImageView iv_ani;
private AnimationDrawable mAnimationDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv_ani = (ImageView) findViewById(R.id.iv_ani);
mAnimationDrawable = (AnimationDrawable) iv_ani.getDrawable();
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
//window初始化完毕 开始播放动画
animationStart();
}
@Override
protected void onPause() {
animationStop();
评论0
最新资源