属性动画Demo

package com.saiermeng.easypropertyanim;

import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends Activity {

    private ImageView iv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv = (ImageView) findViewById(R.id.iv);
    }

    public void alpha(View view) {

        // 透明度
        // target 把动画作用于哪个目标对象上
        // propertyName 属性名称
        // values 让控件发送动画的值
        ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "alpha", 0, 0.1f, 0.3f,
                0.5f, 0.7f, 0.9f, 1.0f);
        oa.setDuration(3000);
        oa.setRepeatCount(2);
        oa.setRepeatMode(ObjectAnimator.REVERSE);
        // 开始播放动画
        oa.start();

    }

    public void rotate(View view) {

        // 旋转
        // target 把动画作用于哪个目标对象上
        // propertyName 属性名称
        // values 让控件发送动画的值
        ObjectAnimator ra = ObjectAnimator.ofFloat(iv, "rotation", 0, 30, 60,
                90, 120, 150, 180, 210, 240, 270, 300, 330, 360);
        ra.setDuration(3000);
        ra.setRepeatCount(2);
        ra.setRepeatMode(ObjectAnimator.REVERSE);
        // 开始播放动画
        ra.start();

    }

    public void scale(View view) {

        // 缩放
        // target 把动画作用于哪个目标对象上
        // propertyName 属性名称
        // values 让控件发送动画的值
        ObjectAnimator sa = ObjectAnimator.ofFloat(iv, "scaleX", 0, 0.2f, 0.4f,
                0.6f, 0.8f, 1.0f);
        sa.setDuration(3000);
        sa.setRepeatCount(2);
        sa.setRepeatMode(ObjectAnimator.REVERSE);
        // 开始播放动画
        sa.start();

        ObjectAnimator say = ObjectAnimator.ofFloat(iv, "scaleY", 0, 0.2f, 0.4f,
                0.6f, 0.8f, 1.0f);
        say.setDuration(3000);
        say.setRepeatCount(2);
        say.setRepeatMode(ObjectAnimator.REVERSE);
        // 开始播放动画
        say.start();

    }


    public void translate(View view) {


        // 旋转
        // target 把动画作用于哪个目标对象上
        // propertyName 属性名称
        // values 让控件发送动画的值
        ObjectAnimator ta = ObjectAnimator.ofFloat(iv, "translationY", 0, 30, 60,
                90);
        ta.setDuration(3000);
        ta.setRepeatCount(2);
        ta.setRepeatMode(ObjectAnimator.REVERSE);
        // 开始播放动画
        ta.start();

    }

    public void set(View view) {
//      alpha(view);
//      rotate(view);
//      scale(view);
//      translate(view);

        AnimatorSet set = new AnimatorSet();

        ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "alpha", 0, 0.1f, 0.3f,
                0.5f, 0.7f, 0.9f, 1.0f);
        oa.setDuration(3000);
        oa.setRepeatCount(2);
        oa.setRepeatMode(ObjectAnimator.REVERSE);

        ObjectAnimator ra = ObjectAnimator.ofFloat(iv, "rotation", 0, 30, 60,
                90, 120, 150, 180, 210, 240, 270, 300, 330, 360);
        ra.setDuration(3000);
        ra.setRepeatCount(2);
        ra.setRepeatMode(ObjectAnimator.REVERSE);

        ObjectAnimator sa = ObjectAnimator.ofFloat(iv, "scaleX", 0, 0.2f, 0.4f,
                0.6f, 0.8f, 1.0f);
        sa.setDuration(3000);
        sa.setRepeatCount(2);
        sa.setRepeatMode(ObjectAnimator.REVERSE);

        ObjectAnimator ta = ObjectAnimator.ofFloat(iv, "translationY", 0, 30, 60,
                90);
        ta.setDuration(3000);
        ta.setRepeatCount(2);
        ta.setRepeatMode(ObjectAnimator.REVERSE);

        // 按照顺序播放
//      set.playSequentially(oa,ra,sa,ta);
        // 综合播放
        set.playTogether(oa,ra,sa,ta);

        set.start();
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值