码迷,mamicode.com
首页 > 移动开发 > 详细

Android属性动画

时间:2016-08-26 13:33:57      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:


package com.example.administrator.mystudent.PropertyAnimation;

import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationSet;
import android.view.animation.BounceInterpolator;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;

import com.example.administrator.mystudent.R;

/**
 * Created by hyang on 2016/8/26.
 * 属性动画学习
 */
public class PropertyAnimationActivity extends android.app.Activity{
    private ImageView img;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_property_animation);

        img= (ImageView) findViewById(R.id.iv_img);
        button= (Button) findViewById(R.id.btn);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // setAnimation1();
                //setAnimation2();
                //setAnimation3();
                setAnimation4();
            }
        });
    }

   /**
     * Tween动画
     */
    private void setAnimation1(){
        TranslateAnimation animation=new TranslateAnimation(0,200,0,0);
        animation.setDuration(3000);
        //animation.setFillAfter(true);//停留在动画完成的位置
        img.startAnimation(animation);
    }

    /**
     * 属性动画
     * 方式1
     */
    private void setAnimation2(){

        ObjectAnimator.ofFloat(img,"translationX",0,200f).setDuration(3000).start();
        ObjectAnimator.ofFloat(img,"rotation",0,360f).setDuration(3000).start();
    }

    /**
     * 属性动画
     * 方式2
     */
    private void setAnimation3(){

        PropertyValuesHolder p1=PropertyValuesHolder.ofFloat("translationX",0,200f);
        PropertyValuesHolder p2=PropertyValuesHolder.ofFloat("rotation",0,360f);
        ObjectAnimator.ofPropertyValuesHolder(img,p1,p2).setDuration(3000).start();
    }
    /**
     * 属性动画
     * 方式3
     * 有动画顺序
     */
    private void setAnimation4(){

        ObjectAnimator objectAnimator1=ObjectAnimator.ofFloat(img,"translationX",0,200f);
        ObjectAnimator objectAnimator2=ObjectAnimator.ofFloat(img,"rotation",0,360f);
        //创建android提供的几种动画效果(在Android的APIdemo中)
        objectAnimator1.setInterpolator(new BounceInterpolator());

        AnimatorSet animatorSet=new AnimatorSet();
        //animatorSet.playSequentially(objectAnimator1,objectAnimator2);
        //按顺序播放动画
        animatorSet.play(objectAnimator1).after(objectAnimator2);
        animatorSet.setDuration(3000);        animatorSet.start();    }}

 

Android属性动画

标签:

原文地址:http://www.cnblogs.com/yoyohong/p/5809779.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!