• 十八、动画帧动画


    一、帧动画

    1.创建xml动态文件,我这里创建的是 frame.xml

    2.使用 animation-list 将图片进行定位,并通过 android:duration 设置播放的时间

    <?xml version="1.0" encoding="utf-8"?>
    <animation-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/pic1" android:duration="100"/>
        <item android:drawable="@drawable/pic2" android:duration="100"/>
        <item android:drawable="@drawable/pic3" android:duration="100"/>
        <item android:drawable="@drawable/pic4" android:duration="100"/>
        <item android:drawable="@drawable/pic5" android:duration="100"/>
        <item android:drawable="@drawable/pic6" android:duration="100"/>
        <item android:drawable="@drawable/pic7" android:duration="100"/>
        <item android:drawable="@drawable/pic8" android:duration="100"/>
    </animation-list>
    

    3.创建主窗体页面

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/linearlayout1"
        android:orientation="vertical"
        android:background="@drawable/frame"
        xmlns:android="http://schemas.android.com/apk/res/android"/>
    

    4.动画的启动和停止

    //获取动画的Drawable资源

    AnimationDrawable anim = (AnimationDrawable)relativeLayout.getBackground();

    //启动动画

    anim.start();

    //停止动画

    anim.stop();

    package com.example.myapplication;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.graphics.drawable.Animatable;
    import android.graphics.drawable.AnimationDrawable;
    import android.graphics.drawable.Drawable;
    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 ly= findViewById(R.id.linearlayout1);
    
            AnimationDrawable anim =(AnimationDrawable)ly.getBackground();
    
            ly.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (flag){
                        anim.start();
                        flag=false;
                    }
                    else {
                        anim.stop();
                        flag=true;
                    }
                }
            });
        }
    }
    

    5.效果图

  • 相关阅读:
    AVL树的java实现
    request和response的setCharacterEncoding()方法
    几种常用数据库连接池的使用
    String类、static关键字、Arrays类、Math类
    QT学习笔记(day02)
    QT学习笔记(day01)
    STL中栈和链表的不同实现方式的速度对比
    C++泛化双端队列
    C++泛化队列
    C++泛化栈
  • 原文地址:https://www.cnblogs.com/wangshunyun/p/16050229.html
Copyright © 2020-2023  润新知