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

Android中Animation的Interpolator插值器詳解

編輯:關於Android編程

Interpolator屬性是Animation類的一個XML屬性,所以alpha、scale、rotate、translate、set都會繼承得到這個屬性。Interpolator被譯為插值器,他是一個指定動畫如何變化的屬性,
我們看下api,他的系統值:
這裡寫圖片描述
意義:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCkFjY2VsZXJhdGVEZWNlbGVyYXRlSW50ZXJwb2xhdG9yINTatq+7rb+qyrzT673pydy1xLXYt73L2cLKuMSx5LHIvc/C/aOs1NrW0LzktcTKsbryvNPL2SBBY2NlbGVyYXRlSW50ZXJwb2xhdG9yINTatq+7rb+qyry1xLXYt73L2cLKuMSx5LHIvc/C/aOsyLu687+qyry808vZIEFudGljaXBhdGVJbnRlcnBvbGF0b3Igv6rKvLXEyrG68s/yuvPLptK7tePIu7rzz/LHsCBBbnRpY2lwYXRlT3ZlcnNob290SW50ZXJwb2xhdG9yIL+qyry1xMqxuvLP8rrzy6bSu7XjyLu688/yx7CzrLn9yei2qNa10ru148i7uvO3tbvYIEJvdW5jZUludGVycG9sYXRvciC2r7utveHK+LXEyrG68rWvxvCjrMDgy8bGpMfywuS12CBDeWNsZUludGVycG9sYXRvciC2r7ut0a27t7Klt8XM2LaotcS0zsr9u9i1vdStteOjrMvZwsq4xLHk0djXxdX9z9LH+s/fIERlY2VsZXJhdGVJbnRlcnBvbGF0b3Ig1Nq2r7utv6rKvLXEtdi3vb/syLu688L9IExpbmVhckludGVycG9sYXRvciDS1LOjwb/L2cLKuMSx5A0KPHA+T3ZlcnNob290SW50ZXJwb2xhdG9yIM/yx7CzrLn9yei2qNa10ru148i7uvO3tbvYPGJyIC8+DQrO0r71tcPWu8Tc1rG527jQyty1xLavu63Qp7n7tcS+zcrHdHJhbnNsYXRloaPL+dLUztLDx7TTdHJhbnNsYXRl1tDAtLjQytzPwtXi0KnK9NDUysfI57rOv9jWxravu63Qp7n7tcShozwvcD4NCjxwPnRyYW5zbGF0ZTwvcD4NCjxociAvPg0KPHA+sNG/2Lz+tNOjqDCjrDCjqca90sa1vaOoMjAwo6wwo6m1xM671sOjrLGjs9a94cr4yrHXtMyssrux5KOsyrnTw7K7zayy5da1xve527Ls0Ke5+6GjPC9wPg0KPHByZSBjbGFzcz0="brush:java;"> " data-snippet-id="ext.223a0849fecb26d285e7261c474dda78" data-snippet-saved="false" data-codota-status="done">

accelerate_decelerate_interpolator

描述:在動畫開始與介紹的地方速率改變比較慢,在中間的時候加速
這裡寫圖片描述
我們可以將其形象的形容下:
這裡寫圖片描述

accelerate_interpolator
描述:在動畫開始的地方速率改變比較慢,然後開始加速

這裡寫圖片描述
我們可以將其形象的形容下(默認下感覺和上面的有點像):
這裡寫圖片描述

anticipate_interpolator
描述: 開始的時候向後甩一點然後向前
這裡寫圖片描述
我們可以將其形象的形容下:
這裡寫圖片描述

anticipate_overshoot_interpolator
描述: 開始的時候向後甩一點然後向前超過設定值一點然後返回
這裡寫圖片描述
我們可以將其形象的形容下:
這裡寫圖片描述

bounce_interpolator
描述: 動畫結束的時候彈起,類似皮球落地
這裡寫圖片描述
我們可以將其形象的形容下:
這裡寫圖片描述

cycle_interpolator
描述:動畫循環播放特定的次數回到原點,速率改變沿著正弦曲線
這裡寫圖片描述
我們可以將其形象的形容下:
這裡寫圖片描述

decelerate_interpolator
描述: 在動畫開始的地方快然後慢
這裡寫圖片描述
我們可以將其形象的形容下:
這裡寫圖片描述

linear_interpolator
描述:以常量速率改變
這裡寫圖片描述
我們可以將其形象的形容下:
這裡寫圖片描述

overshoot_interpolator
描述:向前超過設定值一點然後返回
這裡寫圖片描述
我們可以將其形象的形容下:
這裡寫圖片描述

到這裡他的所有屬性都介紹完了,這個屬性不光對translate有用,對其他繼承至Animation的alpha、scale、rotate、translate、set都有作用效果,如果你想看到alpha、scale、rotate、set的作用效果可以至另一位博主的博文,有詳細的演示(傳送門)

這篇博文難道就這樣結束了嗎?在我們平時沒有設置Interpolator屬性,那它的默認值是多少呢?我們不禁想到!很多人可能會以為是linear_interpolator那是不是呢?
我們找到animation.setInterpolator();

 public void setInterpolator(Context context, @InterpolatorRes int resID) {
        setInterpolator(AnimationUtils.loadInterpolator(context, resID));
    }

它調用了另一個方法()

   public void setInterpolator(Interpolator i) {
        mInterpolator = i;
    }

我們再找下設置它默認值的地方

  protected void ensureInterpolator() {
        if (mInterpolator == null) {
            mInterpolator = new AccelerateDecelerateInterpolator();
        }
    }

是的找到了,它的默認值是accelerate_decelerate_interpolator

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