Carson帶你Android:這是一篇全面&詳細的屬性動畫學習指南


前言

  • 屬性動畫的使用 是 Android 開發(fā)中常用的知識
  • 本文將獻上一份全面 & 詳細的屬性動畫學習指南,將詳細介紹屬性動畫的所有內容,包括:意義、作用、應用場景、功原理 & 具體使用等,希望你們會喜歡。

Carson帶你學Android動畫系列文章:
Carson帶你學Android:一份全面&詳細的動畫知識學習攻略
Carson帶你學Android:常見的三種動畫類型
Carson帶你學Android:補間動畫學習教程
Carson帶你學Android:屬性動畫學習教程
Carson帶你學Android:逐幀動畫學習教程
Carson帶你學Android:自定義動畫神器-估值器(含實例教學)
Carson帶你學Android:自定義動畫神器-插值器(含實例教學)


目錄

示意圖

1. 出現的意義

Android一開始提供了視圖動畫,即補間動畫跟逐幀動畫。但視圖動畫存在三個問題:

為了彌補視圖動畫的缺陷,于是Android在3.0(API 11)開始提供了一種全新的動畫模式:屬性動畫(Property Animation)。


2. 簡介

  • 作用對象:任意 Java 對象,即不再局限于 視圖View對象
  • 動畫效果:可自定義各種動畫效果,即不再局限于4種基本變換:平移、旋轉、縮放 & 透明度

3. 特點

  • 作用對象進行了擴展:不只是View對象,甚至沒對象也可以
  • 動畫效果:不只是4種基本變換,還有其他動畫效果
  • 作用領域:API11后引入的

4. 工作原理

在一定時間間隔內,通過不斷對值進行改變、不斷將該值賦給對象的屬性(任意對象的任意屬性),從而實現該對象在該屬性上的動畫效果。整個工作原理的流程如下:

從上述工作原理可以看出屬性動畫中有兩個非常重要的使用類:ValueAnimator 類 & ObjectAnimator 類。所以,在下面介紹屬性動畫的具體使用時,我會著重介紹這兩個類。


5. 具體使用

對于屬性動畫的使用,主要是:

  1. 兩個使用方法類:ValueAnimator 類 & ObjectAnimator
  2. 兩個輔助使用類:插值器 & 估值器

下面將詳細介紹

5.1 ValueAnimator類

  • 定義:屬性動畫機制中 最核心的一個類
  • 實現動畫的原理:通過不斷控制 值 的變化,再不斷 手動 賦給對象的屬性,從而實現動畫效果。如圖下:
工作原理

從上面原理可以看出:ValueAnimator類中有3個重要方法:

  1. ValueAnimator.ofInt(int values)
  2. ValueAnimator.ofFloat(float values)
  3. ValueAnimator.ofObject(int values)
  • 下面我將繼續(xù)講解另外一個重要的類:ObjectAnimator

5.2 ObjectAnimator類

5.2.1 實現動畫的原理

直接對對象的屬性值進行改變操作,從而實現動畫效果

  1. 如直接改變 Viewalpha 屬性 從而實現透明度的動畫效果
  2. 繼承自ValueAnimator類,即底層的動畫實現機制是基于ValueAnimator
  • 本質原理: 通過不斷控制 值 的變化,再不斷 自動 賦給對象的屬性,從而實現動畫效果。如下圖:
工作原理

從上面的工作原理可以看出:ObjectAnimatorValueAnimator類的區(qū)別:

  • ValueAnimator 類是先改變值,然后 手動賦值 給對象的屬性從而實現動畫;是 間接 對對象屬性進行操作;
  • ObjectAnimator 類是先改變值,然后 自動賦值 給對象的屬性從而實現動畫;是 直接 對對象屬性進行操作;

至于是如何自動賦值給對象的屬性,下面會詳細說明


5.3 ValueAnimator類 & ObjectAnimator 類的區(qū)別

  • 對比ValueAnimator類 & ObjectAnimator 類,其實二者都屬于屬性動畫,本質上都是一致的:先改變值,然后 賦值 給對象的屬性從而實現動畫效果。
  • 但二者的區(qū)別在于:
    ValueAnimator 類是先改變值,然后 手動賦值 給對象的屬性從而實現動畫;是 間接 對對象屬性進行操作;

ValueAnimator 類本質上是一種 改變 值 的操作機制

ObjectAnimator類是先改變值,然后 自動賦值 給對象的屬性從而實現動畫;是 直接 對對象屬性進行操作;

可以理解為:ObjectAnimator更加智能、自動化程度更高


5.4 插值器

示意圖

更加具體介紹請看文章:Android:手把手帶你深入了解神秘的估值器(TypeEvaluator)


5.5 估值器

示意圖

更加具體介紹請看文章:Android 動畫:手把手帶你深入了解神秘的插值器(Interpolator)


5.6 插值器與估值器的區(qū)別

估值器和插值器很多人容易混淆,具體區(qū)別如下:


示意圖

6. 使用小技巧

對于屬性動畫的使用小技巧包括:

  • 組合動畫
  • 快捷使用動畫
  • 監(jiān)聽動畫
  • 動畫適配器

具體請看文章:Android 動畫:這些屬性動畫的使用小技巧你了解嗎

至此,Android 動畫中的屬性動畫的所有知識點都講解完畢。


7. 總結

  • 屬性動畫的本質原理:通過不斷對值進行改變,并不斷將該值賦給對象的屬性,從而實現該對象在該屬性上的動畫效果;具體工作原理邏輯如下:


    工作原理
  • 屬性動畫的使用主要有以下類,具體如下:
主要使用類

歡迎關注Carson_Ho的簡書

不定期分享關于安卓開發(fā)的干貨,追求短、平、快,但卻不缺深度。


請點贊!因為你的鼓勵是我寫作的最大動力!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容