• Android属性动画


    
    
    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();    }}
    
    
    
    
    
  • 相关阅读:
    媒体查询漫谈——@media Queries
    JavaScript工具函数集
    什么是BFC、IFC、GFC和FFC
    HTTP与HTTPS的区别
    reflow 和 repaint
    客户端检测
    ajax
    批量删除
    数据访问
    登录主页面代码
  • 原文地址:https://www.cnblogs.com/yoyohong/p/5809779.html
Copyright © 2020-2023  润新知