王学岗属性动画上(四)------ValueAnimator的应用

原创 2015年11月17日 23:18:41

布局代码只有一张<ImageView/>

package com.example.propertyOfGang;

import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;

/**
 * @author acer
 *本案例————多个动画同时执行
 */
/**
 * Valueanimator与objectAnimator的区别在哪儿
 * Valueanimator不会将动画作用给view,但是时间还是会计算,ValueAnimator在执行的过程中,
 * 是不会将动画给View的,如果你创建了ValueAnimator,这个视图是不会动的,视图还是死的,但是时间会走,会执行。
 * 那么什么时候使用ValueAnimator呢?一般执行比较复杂的复合动画的时候使用
 *ObjectAnimator是 ValueAnimator的增强版,ObjectAnimator继承了ValueAnimator
 */
@SuppressLint("NewApi")
// 新的API,支持的最低版本是11
public class MainActivity extends Activity implements OnClickListener {

    private ImageView iv_zhangxin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv_zhangxin = (ImageView) findViewById(R.id.imageView1);
        iv_zhangxin.setOnClickListener(this);
        // 可以在这里查看有什么属性
        // iv_zhangxin.setRotationX(rotationX);
        // iv_zhangxin.setAlpha(alpha);
        // iv_zhangxin.setTranslationX(translationX);

    }

    @Override
    public void onClick(View v) {
        // ValueAnimator.ofFloat(),你会发现动画执行没有作用对象,只有一个动画的执行过程,我们可以监听
        // 这个动画的执行过程,根据动画的执行过程,我们做相应的处理
        ValueAnimator valueAnimator = ValueAnimator.ofFloat(0.0f, 1.0f);
        valueAnimator.setDuration(1000);
        valueAnimator.start();
        // 上面代码虽然创建了动画,但不知道动画执行到什么地方,
        // 如何让视图出现动画呢?可以使用addUpdateListener监听动画执行过程。
        valueAnimator.addUpdateListener(new AnimatorUpdateListener() {

            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                // 虽然valueAnimator没有作用到视图上,没有让视图动起来,但是valueanimator提供了一个监听,视图的动画
                // 效果可以在监听里实现。
                //指的是当前时间在某一刻对应的value的值,比如我当前运行了以毫秒,对应的是我走的距离值。
            float animationValue=   (Float) animation.getAnimatedValue();
iv_zhangxin.setScaleX(animationValue);
iv_zhangxin.setScaleY(animationValue);
            }
        });
    }

}

王学岗属性动画上(十一)——属性动画的综合应用

一,前言;嗨大家好,这次的动画内容是要把前几篇微博中用到的知识综合在一起,做出一个更有难度的效果。什么效果呢?先设置两个布局,一个隐藏,一个显示; 布局(类似于前几篇文章中的iv_zhangx...

王学岗的属性动画上(五)------抛物线效果的实现

布局文件只有一张图片啦 package com.example.propertyOfGang;import android.animation.ObjectAnimator; import and...

王学岗的属性动画上(二)——objectAnimator的非主流用法

布局文件只有一张图片,不再列举 package com.example.propertyOfGang;import android.animation.ObjectAnimator; import...

王学岗csdn实现闪屏界面———策略模式+属性动画

欢迎(闪屏界面) 布局

王学岗属性动画下(一)——————加载gif动画

大家好,从今天开始就要跟大家学习属性动画下了,这些课程比较难,大家做好准备哦!本次我们是用SurfaceView加载gif动画! 首先大家准备好一张gif动画,把他加载到assets文件夹里!注意是...

王学岗的属性动画上(六)——监听动画的执行

布局文件只有一张图片,此处省略; 本篇文章是监听动画的执行。package com.example.zhangxin;import android.animation.Animator; impo...

王学岗补间动画(一)——补间动画的初步应用

一、布局

王学岗帧动画(一)——帧动画的简单实用

这一节比较简单,在androidAPI里有详细的讲解,大家可以看下,我就直接上代码了一: 布局...

王学岗自定义AsycTask

布局文件我就不写了,就是几个控件package com.tz.kateasyctask_tz;import java.io.FileOutputStream; import java.io.IOExc...

王学岗Fragment(六)——Activity与fragment之间数据的传递

我们说一下我们的项目需求,当我们点击fragment中的条目的时候,activitu中的textView显示相应的文本。package com.example.fragment;import andr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:王学岗属性动画上(四)------ValueAnimator的应用
举报原因:
原因补充:

(最多只允许输入30个字)