Android 资源简介(五) AnimationDrawable

AnimationDrawable 代表动画资源。Android 既支持逐帧动画,也支持补间动画。

定义补间动画的 XML 资源文件以 元素作为根元素,该元素可以设定如下 4 个元素:

  1. alpha:透明度;
  2. scale:缩放;
  3. translate:位移;
  4. rotate:旋转。

定义动画的 XML 资源文件应该放在 /res/anim 路径下。

都可以指定 android:interpolator 属性,该属性指定动画的变化速度,可以实现匀速、正加速、负加速、无规则变加速等,Android 系统的 R.anim 对象中包含了定制常量,它们定义了不同的动画速度,例如:

  1. linear_interpolator: 匀速
  2. accelerate_interpolator: 加速
  3. decelerate_interpolator: 减速

如果程序需要让 元素下的所有变换效果使用相同的动画速度,则可以指定 android:shareInterpolator="true"。

我们可以通过两张方式访问动画资源文件:

  1. 在 XML 中
@[:]anim/file_name
  1. 在 Java 中
[]R.anim.file_name

下面是一个简单的使用示例:

首先是自定义的 test_anim01.xml 文件的代码:




    

    

之后是主布局文件的代码:




    

    

接下来是主程序文件的源代码:

package com.toby.personal.testlistview;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    final private static String TAG = "Toby_Test";

    private ImageView imageView;
    private Animation animation;

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

        imageView = (ImageView) findViewById(R.id.imageAnim);
        animation = AnimationUtils.loadAnimation(this, R.anim.test_anim01);
        animation.setFillAfter(true);

    }

    public void start(View view) {
        imageView.startAnimation(animation);
    }
}

本示例的运行效果,各位可以自行运行测试,如果出现运行不了等问题,可以给我留言。本文参考文献:《疯狂Android讲义(第2版)》

你可能感兴趣的:(Android 资源简介(五) AnimationDrawable)