Android Drawable Animation(帧动画)

上一篇是ViewAnimation(补间动画),这一篇是帧动画,通过每次播放一帧drawable资源实现动画效果。像是传统的动画方式,把一系列图片按照某一顺序播放,形成连贯的效果。
使用帧动画比较简单:

  • 现在drawable目录下自定义一个xml文件,用以指定要展示的图片和持续的事件还有是否循环播放。
  • 在Java代码中使用

布局文件




    

    

图片资源文件

在drawable目录下新建 xml文件,并将图片资源放在drawable下
Android Drawable Animation(帧动画)_第1张图片
在这里插入图片描述
在文件中指定显示的图片和一些属性



    
    
    
    

JavaCode

package com.example.drawable;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.drawable.AnimatedImageDrawable;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    // 声明控件
    private ImageView animationIV;
    private Button buttonA,buttonB;
    private AnimationDrawable animationDrawable;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 找到控件
        animationIV = findViewById(R.id.animationIV);
        buttonA = findViewById(R.id.buttonA);
        buttonB = findViewById(R.id.buttonB);
        // 设置点击事件监听器
        buttonA.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                animationIV.setImageResource(R.drawable.fairy);
                animationDrawable = (AnimationDrawable) animationIV.getDrawable();
                animationDrawable.start();
            }
        });
        buttonB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                animationDrawable = (AnimationDrawable) animationIV.getDrawable();
                animationDrawable.stop();
            }
        });
    }
}


最终效果

你可能感兴趣的:(Android学习)