返回首页
当前位置: 主页 > 编程语言 > Android教程 >

Android Animation中关于Interpolator的解释

时间:2013-12-05 23:17来源:电脑教程学习网 www.etwiki.cn 编辑:admin

网上有很多解释Interpolator属性的文章,但是基本上都是停留在直接翻译SDK的意思层面上。Interpolator英文意思是: 篡改者; 分类机; 校对机。SDK对Interpolator的描述是:An interpolator defines the rate of change of an animation. This allows the basic animation effects (alpha, scale, translate, rotate) to be accelerated, decelerated, repeated, etc。简而言之Interpolator就是一个“变化率”,一个基本动画的“变化率”。

Android Animation中关于Interpolator的解释
Android Animation中关于Interpolator的解释
 


比如:从A到B的一个平移动画,移动,当然后速度的快慢,那么从A到B可以是匀速、匀加速、匀减速、变速完成这段距离。假设距离为S,时间为t,速度为v,都知道S=v*t。
这个Interpolator在这里就是一个速度控制器,控制速度变化。先给一个对Interpolator的大概理解,接下来从代码角度来认识Interpolator。
Interpolator借口只有一个抽象方法getInterpolation(float input),由此SDK中扩展了另外几个常用Interpolator类,分别是:

  • AccelerateInterpolator:动画从开始到结束,变化率是一个加速的过程。
  • DecelerateInterpolator:动画从开始到结束,变化率是一个减速的过程。
  • CycleInterpolator:动画从开始到结束,变化率是循环给定次数的正弦曲线。
  • AccelerateDecelerateInterpolator:动画从开始到结束,变化率是先加速后减速的过程。
  • LinearInterpolator:动画从开始到结束,变化率是线性变化。
  • ..............

这里给一个简单的实现Interpolator接口的类:

package com.szy.animationdemo;

import android.view.animation.Interpolator;

/**
 *@author coolszy
 *@date 2012-2-6

 */

public class MyInterpolator implements Interpolator
{
	private float mFactor;
	private int i;
	public MyInterpolator(int i)
	{
		this.i = i;
	}

	@Override
	public float getInterpolation(float input)
	{
		switch (i)
		{
		case 1:
			mFactor = input;
			break;
		case 2:
			mFactor = input * input * input;
			break;
		}
		return mFactor;
	}
}

------分隔线----------------------------
标签(Tag):Android android教程 android技巧 android软件 android开发教程
------分隔线----------------------------
推荐内容
猜你感兴趣