目录
逐帧动画
实现过程主要分为三步:
1.获取动画的Drawable资源
AnimationDrawable animationDrawable = (AnimationDrawable) 放图片控件的实例化对象名称.getBackground();
2.启动动画 animationDrawable.start();
3.停止动画 animationDrawable.stop();
实现的小例子完整代码:
frame:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/a" android:duration="200"/>
<item android:drawable="@drawable/b" android:duration="200"/>
<item android:drawable="@drawable/c" android:duration="200"/>
</animation-list>
activity_main:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/frame"
tools:context=".MainActivity">
</RelativeLayout>
MainActivity:
public class MainActivity extends AppCompatActivity {
private boolean flag =true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout relativeLayout = findViewById(R.id.rl);
AnimationDrawable animationDrawable = (AnimationDrawable) relativeLayout.getBackground();
relativeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(flag){
animationDrawable.start();
flag =false;
}else{
animationDrawable.stop();
flag = true;
}
}
});
}
}
运行结果截图(动态图):
在这个小例子里使用的图片如下,截取的不太好,有兴趣的小伙伴可以自己用其他的图片替换:
以上便是对逐帧动画的总结和分享,希望可以帮助到大家,如果文章中有错误,也希望大家可以指正。