Android 动画之帧动画用法详解
短信预约 -IT技能 免费直播动态提醒
本文目录帧动画概念帧动画实现方法1:xml实现帧动画第一步:导入帧动画素材第二步:创建帧动画文件第三步:布局文件和Activity方法2:用Java代码实现帧动画
帧动画概念
作者:huwei0814
在Android中,帧动画的本质是把一组预先准备好的图片循环切换播放,造成一种动画效果。
实现帧动画有两种方式,即
xml
和java
方法1:xml实现帧动画
第一步:导入帧动画素材
把准备的素材放到drawable目录
第三步:布局文件和Activity
布局文件:布局文件中添加两个点击按钮和一个图片控件
在
Activity
中添加启动&停止动画代码
public class MainActivity extends AppCompatActivity {
Button mButtonStart;
Button mButtonStop;
ImageView mImageViewShow;
AnimationDrawable mAnimationDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageViewShow = findViewById(R.id.image);
// 获取动画对象
mAnimationDrawable = (AnimationDrawable) mImageViewShow.getBackground();
mButtonStart = findViewById(R.id.button);
mButtonStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//开始动画
mAnimationDrawable.start();
}
});
mButtonStop = findViewById(R.id.button2);
mButtonStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//结束动画
mAnimationDrawable.stop();
}
});
}
}
方法2:用Java代码实现帧动画
Java代码实现帧动画跟xml很类似,只有Activity部分有点区别
public class MainActivity extends AppCompatActivity {
Button mButtonStart;
Button mButtonStop;
ImageView mImageViewShow;
AnimationDrawable mAnimationDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageViewShow = findViewById(R.id.image);
// 获取动画对象
mAnimationDrawable =new AnimationDrawable();
mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img01),200);
mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img02),200);
mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img03),200);
mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img04),200);
mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img05),200);
mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img06),200);
mAnimationDrawable.setOneShot(false);//设置循环播放
mImageViewShow.setBackground(mAnimationDrawable);
mButtonStart = findViewById(R.id.button);
mButtonStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//开始动画
mAnimationDrawable.start();
}
});
mButtonStop = findViewById(R.id.button2);
mButtonStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//结束动画
mAnimationDrawable.stop();
}
});
}
}
作者:huwei0814
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341