Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Animation中關於Interpolator的解釋

Android Animation中關於Interpolator的解釋

編輯:關於Android編程

網上有很多解釋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;
	}
}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved