逐帧动画-简单使用
程序员文章站
2022-03-25 13:49:54
...
1.实现逐帧动画方式有2种
A.xml资源文件方式
B.代码方式
2.xml资源文件方式
先在res/drawable中新建一个xml文件,还要准备三张图片:a/b/c
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false"> <!--循环播放-->
<item
android:drawable="@drawable/a"
android:duration="120" /> <!--duration:每一帧播放时长-->
<item
android:drawable="@drawable/b"
android:duration="120"/>
<item
android:drawable="@drawable/c"
android:duration="120"/>
</animation-list> <!--逐帧动画-资源方式-->
然后在代码中设置
//资源方式-逐帧动画
imag1.setBackgroundResource(R.drawable.frame_animation); //资源方式必须用该方法,不用setBackground
kz1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AnimationDrawable animationDrawable1 = (AnimationDrawable) imag1.getBackground();
if (tag1 == 0) {
animationDrawable1.start(); //控制
tag1 = 1;
} else {
animationDrawable1.stop();
tag1 = 0;
}
}
});
3.代码方式:
//逐帧动画-代码方式A
AnimationDrawable animationDrawable2 = new AnimationDrawable();
Drawable drawablea = getResources().getDrawable(R.drawable.a);
Drawable drawableb = getResources().getDrawable(R.drawable.b);
Drawable drawablec = getResources().getDrawable(R.drawable.c);
animationDrawable2.addFrame(drawablea, 120); //添加一帧动画,并给定时长
animationDrawable2.addFrame(drawableb, 120);
animationDrawable2.addFrame(drawablec, 120);
//逐帧动画-代码方式A
imag2.setBackground(animationDrawable2);
animationDrawable2.setOneShot(false);
kz2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AnimationDrawable animationDrawable2 = (AnimationDrawable) imag2.getBackground();
if (tag2 == 0) {
animationDrawable2.start();
tag2 = 1;
} else {
animationDrawable2.stop();
tag2 = 0;
}
}
});
4.ok
上一篇: Mybatis 传入多个参数查询数据 (3种方法)
下一篇: CSS 布局经典问题初步整理