当前位置: 萬仟网 > IT编程>移动开发>Android > Android中实现一个简单的逐帧动画(附代码下载)

Android中实现一个简单的逐帧动画(附代码下载)

2020年01月12日 14:54  | 萬仟网IT编程  | 我要评论

场景

android中的逐帧动画,就是由连续的一张张照片组成的动画。

效果

 

 

注:

博客:

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

首先准备一组不同表情的照片,放在res/drawable下,然后在此目录下新建动画资源文件fairy.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/img001" android:duration="60"/>
    <item android:drawable="@drawable/img002" android:duration="60"/>
    <item android:drawable="@drawable/img003" android:duration="60"/>
    <item android:drawable="@drawable/img004" android:duration="60"/>
    <item android:drawable="@drawable/img005" android:duration="60"/>
    <item android:drawable="@drawable/img006" android:duration="60"/>
</animation-list>

 

这里是逐帧动画,所以节点是animation-list 。

然后来到布局文件,将布局设置为linearlayout并添加id属性,并且设置背景为上面添加的动画资源文件

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:id="@+id/linearlayout"
    android:orientation="vertical"
    android:background="@drawable/fairy"
    android:layout_height="match_parent"
    tools:context=".mainactivity">

 

</linearlayout>

 

然后来到对应的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 class mainactivity extends appcompatactivity {

    private boolean flag = true;

    @override
    protected void oncreate(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() {  //为布局管理器添加单击事件
            @override
            public void onclick(view v) {
                if(flag){
                    anim.start(); //开始播放动画
                    flag=false;
                }else {
                    anim.stop();  //停止播放动画
                    flag=true;
                }
            }
        });
    }
}

 

代码下载

https://download.csdn.net/download/badao_liumang_qizhi/12097211

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

◎已有 0 人评论

Copyright © 2020  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com