场景
Android中的逐帧动画,就是由连续的一张张照片组成的动画。
效果
注:
实现
首先准备一组不同表情的照片,放在res/drawable下,然后在此目录下新建动画资源文件fairy.xml
这里是逐帧动画,所以节点是animation-list 。
然后来到布局文件,将布局设置为LinearLayout并添加id属性,并且设置背景为上面添加的动画资源文件
然后来到对应的Activity,创建标识变量Flag,然后获取AnimationDrawable对象,并且为布局管理器添加单击事件。从而控制动画的停止和播放。
package com.badao.animationtest;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;public classMainActivity extends AppCompatActivity {private boolean flag = true;
@Overrideprotected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout linearLayout= (LinearLayout) findViewById(R.id.linearLayout); //获取布局管理器//获取AnimationDrawable对象
final AnimationDrawable anim=(AnimationDrawable) linearLayout.getBackground();
linearLayout.setOnClickListener(new View.OnClickListener() { //为布局管理器添加单击事件
@Overridepublic voidonClick(View v) {if(flag){
anim.start();//开始播放动画
flag=false;
}else{
anim.stop();//停止播放动画
flag=true;
}
}
});
}
}
代码下载