其他分享
首页 > 其他分享> > Andriod动画效果总结以及帧动画实现

Andriod动画效果总结以及帧动画实现

作者:互联网

文章目录


前言

安卓比较简单和基础的动画效果有三种,分别是帧动画(Drawable Animation)、补间动画(View Animation)、属性动画(Property Animation)。下面对每种动画进行介绍,同时实现利用帧动画实现京东小哥送快递的动画。

一、帧动画

1.1概述

帧动画就是顺序播放一组预先定义好的图片,就类似于我们观看视频,就是一张一张的图片连续播放。

1.2使用步骤:

1.3属性介绍

二、补间动画

2.1概述

view动画也称为补间动画,因为我们只需要拿到一个view,设定它开始和结束的位置,中间的view会自动由系统补齐,而不需要帧动画每一幅图都是提前准备好的。

View动画是Android一开始就提供的比较原始的动画,主要支持四种效果:平移、缩放、旋转、透明度变化(渐变) 四种基本效果,我们可以再这四种基础效果的基础上,选择其中的几种进行组合。

2.2使用步骤

2.3相关属性

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

三、属性动画

3.1概述

属性动画,属性动画只对Android 3.0(API 11)以上版本的Android系统才有效,
这种动画可以设置给任何Object,包括那些还没有渲染到屏幕上的对象。这种动画是可扩展的,可以让你自定义任何类型和属性的动画。

3.2使用步骤

3.3相关属性

四.京东小哥送快递的帧动画实现

4.1 导入图片资源,将其放在drawable文件夹下面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2创建animation_list的xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/frame_0" android:duration="200"/>
    <item android:drawable="@drawable/frame_1" android:duration="200"/>
    <item android:drawable="@drawable/frame_2" android:duration="200"/>
</animation-list>

4.3修改总的布局文件

<?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:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="实现帧动画"
        android:textSize="20sp"
        android:textColor="#9C27B0"
        android:textStyle="bold"
        />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="296dp">
    </ImageView>

</LinearLayout>

4.4 通过动画对象的start(),stop()方法来开启或者是停止动画

package com.example.donghua;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.TransitionDrawable;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    private ImageView imageView1;//图片框
    private AnimationDrawable AD;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView1 = findViewById(R.id.imageView1);
        imageView1.setImageResource(R.drawable.anim_frame); //设置资源

        AD = (AnimationDrawable) imageView1.getDrawable();
        AD.setOneShot(false);

    }
    @Override
    protected void onStart(){
        startAnimation();
        super.onStart();
    }

    private void startAnimation() {
        AD.start();
        Animation trans = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0,
                Animation.RELATIVE_TO_SELF,0,
                Animation.RELATIVE_TO_SELF,0,
                Animation.RELATIVE_TO_SELF,0);
        trans.setDuration(1000);
        trans.setRepeatCount(Animation.INFINITE);
        imageView1.startAnimation(trans);
    }

}

4.5 效果图
在这里插入图片描述

标签:总结,动画,Animation,Andriod,import,android,播放,属性
来源: https://blog.csdn.net/l1036347723/article/details/121895046