Android 动画 之 ObjectAnimator

android 3.0之后添加的一些动画   animator 中的 ObjectAnimator:

补间动画能实现的:

1.alpha 透明度

//第一个参数为 view对象,第二个参数为 动画改变的类型,第三,第四个参数依次是开始透明度和结束透明度。
	ObjectAnimator alpha = ObjectAnimator.ofFloat(text, "alpha", 0f, 1f);
	alpha.setDuration(2000);//设置动画时间
	alpha.setInterpolator(new DecelerateInterpolator());//设置动画插入器,减速
	alpha.setRepeatCount(-1);//设置动画重复次数,这里-1代表无限
	alpha.setRepeatMode(Animation.REVERSE);//设置动画循环模式。
	alpha.start();//启动动画。

2.scale

       AnimatorSet animatorSet = new AnimatorSet();//组合动画
	ObjectAnimator scaleX = ObjectAnimator.ofFloat(text, "scaleX", 1f, 0f);
	ObjectAnimator scaleY = ObjectAnimator.ofFloat(text, "scaleY", 1f, 0f);
	animatorSet.setDuration(2000);
	animatorSet.setInterpolator(new DecelerateInterpolator());
	animatorSet.play(scaleX).with(scaleY);//两个动画同时开始
	animatorSet.start();

3.translate

ObjectAnimator translationUp = ObjectAnimator.ofFloat(button, "Y",button.getY(), 0);
	translationUp.setInterpolator(new DecelerateInterpolator());
	translationUp.setDuration(1500);
	translationUp.start();

4. rotate

AnimatorSet set = new AnimatorSet() ;
        ObjectAnimator anim = ObjectAnimator .ofFloat(phone, "rotationX", 0f, 180f);
        anim.setDuration(2000);
        ObjectAnimator anim2 = ObjectAnimator .ofFloat(phone, "rotationX", 180f, 0f);
        anim2.setDuration(2000);
        ObjectAnimator anim3 = ObjectAnimator .ofFloat(phone, "rotationY", 0f, 180f);
        anim3.setDuration(2000);
        ObjectAnimator anim4 = ObjectAnimator .ofFloat(phone, "rotationY", 180f, 0f);
        anim4.setDuration(2000); 

        set.play(anim).before(anim2); //先执行anim动画之后在执行anim2
        set.play(anim3).before(anim4) ;
        set.start();

补间动画不能实现的:

5.android 改变背景颜色的动画实现如下

ObjectAnimator translationUp = ObjectAnimator.ofInt(button,
				"backgroundColor", Color.RED, Color.BLUE, Color.GRAY,
				Color.GREEN);
		translationUp.setInterpolator(new DecelerateInterpolator());
		translationUp.setDuration(1500);
		translationUp.setRepeatCount(-1);
		translationUp.setRepeatMode(Animation.REVERSE);
		/*
		 * ArgbEvaluator:这种评估者可以用来执行类型之间的插值整数值代表ARGB颜色。
		 * FloatEvaluator:这种评估者可以用来执行浮点值之间的插值。
		 * IntEvaluator:这种评估者可以用来执行类型int值之间的插值。
		 * RectEvaluator:这种评估者可以用来执行类型之间的插值矩形值。
		 *
		 * 由于本例是改变View的backgroundColor属性的背景颜色所以此处使用ArgbEvaluator
		 */

		translationUp.setEvaluator(new ArgbEvaluator());
		translationUp.start();

关于Animation更详细的教程:

Android属性动画Property Animation系列一之ValueAnimator:

http://blog.csdn.net/feiduclear_up/article/details/45893619

Android属性动画Property Animation系列二之ObjectAnimator

http://blog.csdn.net/feiduclear_up/article/details/45915377

时间: 2024-10-10 17:22:22

Android 动画 之 ObjectAnimator的相关文章

android动画---ObjectAnimator基本使用

一.使用objectAnimator实现下图的效果(不会做gif图) 点击前: 点击后 方法介绍: public static ObjectAnimator ofFloat(Object target, String propertyName, float... values) 第一个参数用于指定这个动画要操作的是哪个控件 第二个参数用于指定这个动画要操作这个控件的哪个属性 第三个参数是可变长参数,这个就跟ValueAnimator中的可变长参数的意义一样了,就是指这个属性值是从哪变到哪. ac

Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了

前言 我们都知道 Android 自带了 Roate Scale Translate Alpha 多种框架动画,我们可以通过她们实现丰富的动画效果,但是这些宽家动画却有一个致命的弱点,它们只是改变了 View 显示的大小,而没有改变 View 的响应区域.这时以 ObjectAnimator.ValueAnimator 为代表的属性动画也就应运而生了. 简单效果 工作原理 属性动画字如其名,是通过改变 View 的属性值来改变控件的形态,说白了就是通过反射技术来获取控件的一些属性如宽度.高度等的

android动画具体解释六 XML中定义动画

动画View 属性动画系统同意动画View对象并提供非常多比view动画系统更高级的功能.view动画系统通过改变绘制方式来变换View对象,view动画是被view的容器所处理的,由于View本身没有要操控的属性.结果就是View被动画了.但View对象本身并没有变化. 在Android3.0中,新的属性和对应的getter和setter方法被增加以克服此缺点. 属性动画系统能够通过改变View对象的真实属性来动画Views. 并且.View也会在其属性改变时自己主动调用invalidate(

Android开发艺术探索——第七章:Android动画深入分析

Android开发艺术探索--第七章:Android动画深入分析 Android的动画可以分成三种,view动画,帧动画,还有属性动画,其实帧动画也是属于view动画的一种,,只不过他和传统的平移之类的动画不太一样的是表现形式上有点不一样,view动画是通过对场景的不断图像交换而产生的动画效果,而帧动画就是播放一大段图片,很显然,图片多了会OOM,属性动画通过动态的改变对象的属性达到动画效果,也是api11的新特性,在低版本无法使用属性动画,但是我们依旧有一些兼容库,OK,我们还是继续来看下详细

Android动画--属性动画Property Animation

简介 属性动画包含: ObjectAnimator 动画的执行类 ValueAnimator 动画的执行类 AnimatorSet 用于控制一组动画的执行:线性,一起,每个动画的先后执行等. AnimatorInflater 用户加载属性动画的xml文件 ObjectAnimator 单一属性动画 缩放X轴:ScaleX ObjectAnimator().ofFloat(imageView,"ScaleY",1.0f,0.0f).setDuration(3000).start(); 缩

android动画详解三 动画API概述

· 属性动画与view动画的不同之处 view动画系统提供了仅动画View 对象的能力,所以如果你想动画非View 对象,你就要自己实现代码. view动画系统实际上还被强制仅能对 View 的少数属性进行动画,比如缩放和旋转,而不能对背景色进行. view动画的另一个坏处是它仅修改View的绘制位置,而不是View的实际位置.例如,如果你动画一个移动穿越屏幕,button的绘制位置是正确的,但实际你可以点击它的位置却没有变,所以你必须去实现你自己的逻辑来处理它. 使用属性动画系统时,这个限制被

Android动画效果——1.帧动画2.补间动画3.跳转画面(三)

Android--动画效果1.帧动画2.补间动画3.跳转画面 插值器类 xml属性值 说明 LinearInterpolator @android:anim/linear_interpolatorr 动画以均匀的速度改变. AccelerateInterpolator @android:anim/accelerate_interpolator 在动画开始时改变速度较慢,然后开始加速. AccelerateDecelerateInterpolator @android:anim/accelerat

Android 动画系列

Android种最常用的动画: ~1~Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变) Tweene Animations 主要类: Animation   动画 AlphaAnimation 渐变透明度 RotateAnimation 画面旋转 ScaleAnimation 渐变尺寸缩放 TranslateAnimation 位置移动 AnimationSet  动画集 以自定义View为例,该View很简单,画面上只有一个图片. 现在我们要对整个V

Android 动画详解

这次主要就介绍android动画,android动画目前分为三种形式,Tween Animation 这个只能应用于view对象上面的,Drawable Animation这个是帧动画,就是类似我们有一些列的图片依次播放图片时出现的动画,Property Animation 这个是属性动画,这也是在android3.0之后引进的动画,在手机的版本上是android4.0就可以使用这个动画,下面我们主要就是针对这三种情况进行介绍. Tween Animation 这个动画在Property Ani