Android 资源简介(六) Property Animation 属性动画

Animator 代表一个属性动画,但它只是一个抽象类,通常会使用它的子类:AnimatorSet、ValueAnimator、ObjectAnimator、TimeAnimator。

定义属性动画的 XML 资源文件能以如下三个元素中的任意一个作为根元素:

  1. :它是一个父元素,用于包含其他子元素,该元素定义的资源代表 AnimatorSet 对象;
  2. :用于定义 ObjectAnimator 动画;
  3. :用于定义ValueAnimator动画。

注意:属性动画的 XML 文件应该保存在 /res/animator 目录中。

下面是一个简单的示例:

自定义的 animator 资源文件的代码为:



我们的主布局文件的代码很简单,就是一个简单设置属性的空的 LinearLayout,其内容如下:





主程序文件的代码如下所示:

package com.toby.personal.testlistview;

import android.animation.AnimatorInflater;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

    final private static String TAG = "Toby_Test";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout container = (LinearLayout) findViewById(R.id.container);
        container.addView(new TestAnimationView(this));
    }

    public class TestAnimationView extends View {
        public TestAnimationView(Context context){
            super(context);
            ObjectAnimator colorAnim = (ObjectAnimator) AnimatorInflater.loadAnimator(
                    MainActivity.this, R.animator.test_animator01);
            colorAnim.setTarget(this);
            colorAnim.start();
        }
    }

}

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

你可能感兴趣的:(Android 资源简介(六) Property Animation 属性动画)