原理:使用ValueAnimator屬性動畫類實現,它通過值的改變手動設置對象的屬性值來實現動畫效果。直接貼代碼:
public static void doNumberAnim(TextView tvPrice, float startNumber, float endNumber) {ValueAnimator animator = ValueAnimator.ofFloat(startNumber, endNumber);animator.setDuration(800);animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {@Overridepublic void onAnimationUpdate(ValueAnimator animation) {tvPrice.setText(animation.getAnimatedValue().toString());}});animator.start();
}
對于官網解釋如下:
This class provides a simple timing engine for running animations which calculate animated values and set them on target objects.
There is a single timing pulse that all animations use. It runs in a custom handler to ensure that property changes happen on the UI thread.
By default, ValueAnimator uses non-linear time interpolation, via the?
AccelerateDecelerateInterpolator
?class, which accelerates into and decelerates out of an animation. This behavior can be changed by calling?setInterpolator
.Animators can be created from either code or resource files. Here is an example of a ValueAnimator resource file:
ValueAnimator also supports the use of a combination of?
PropertyValuesHolder
?and?Keyframe
?resource tags to create a multi-step animation. Note that you can specify explicit fractional values (from 0 to 1) for each keyframe to determine when, in the overall duration, the animation should arrive at that value. Alternatively, you can leave the fractions off and the keyframes will be equally distributed within the total duration:
此類提供了一個簡單的計時引擎,用于運行動畫,這些動畫計算動畫值并將其設置在目標對象上。所有動畫都使用單個定時脈沖。它在自定義處理程序中運行,以確保屬性更改發生在 UI 線程上。
默認情況下,ValueAnimator 通過類使用非線性時間插值,該插值加速到動畫中,從動畫中減速。可以通過調用 來更改此行為。AccelerateDecelerateInterpolatorsetInterpolator
可以從代碼或資源文件創建動畫器。下面是 ValueAnimator 資源文件的示例:
ValueAnimator 還支持使用 and 資源標記的組合來創建多步驟動畫。請注意,您可以為每個關鍵幀指定顯式小數值(從 0 到 1),以確定動畫在整個持續時間內何時應達到該值。或者,您可以關閉分數,關鍵幀將在總持續時間內均勻分布:PropertyValuesHolderKeyframe
總結
常數 | |
---|---|
static?final int | INFINITE?= -1 此值與屬性一起使用以無限期地重復動畫。 |
static?final int | RESTART?= 1 當動畫到達末尾并且為 INFINITE 或正值時,動畫將從開頭重新啟動。 |
static?final int | REVERSE?= 2 當動畫到達末尾并且為無限值或正值時,動畫在每次迭代時都會反轉方向。 |
公共構造函數 |
---|
ValueAnimator() 創建一個新的 ValueAnimator 對象。 |
公共方法 | |
---|---|
static boolean | areAnimatorsEnabled() 返回系統范圍的動畫器當前是否已啟用。 |
void | cancel() 取消動畫。 |
@NonNull?ValueAnimator | clone() |
void | end() 結束動畫。 |
float | getAnimatedFraction() 返回當前動畫分數,這是動畫上最近幀更新中使用的經過/插值分數。 |
@NonNull?Object | getAnimatedValue() 當只有一個屬性被動畫化時,由此計算的最新值。 |
@Nullable?Object | getAnimatedValue(@NonNull?String?propertyName) 由此計算的最新值為 。 |
long | getCurrentPlayTime() 獲取動畫在時間中的當前位置,該位置等于當前時間減去動畫開始的時間。 |
long | getDuration() 獲取動畫的長度。 |
static long | getFrameDelay() 動畫的每一幀之間的時間量(以毫秒為單位)。 |
@Nullable?Interpolator | getInterpolator() 返回此值動畫器使用的計時插值器。 |
@NonNull?String | getNameForTrace() 返回此動畫器的名稱以進行調試。 |
int | getRepeatCount() 定義動畫應重復的次數。 |
int | @ValueAnimator.RepeatMode 定義此動畫到達末尾時應執行的操作。 |
long | getStartDelay() 調用延遲啟動動畫的時間量(以毫秒為單位)。 |
long | getTotalDuration() 獲取動畫的總持續時間,包括動畫序列、開始延遲和重復。 |
@NonNull?PropertyValuesHolder[] | getValues() 返回此值動畫器在其間進行動畫處理的值。 |
boolean | isRunning() 返回此動畫器當前是否正在運行(已啟動并已超過任何初始啟動延遲周期且尚未結束)。 |
boolean | isStarted() 返回此動畫器是否已啟動和尚未結束。 |
static @NonNull?ValueAnimator | ofArgb(@NonNull?int[]?values) 構造并返回一個在顏色值之間進行動畫處理的 ValueAnimator。 |
static @NonNull?ValueAnimator | ofFloat(@NonNull?float[]?values) 構造并返回一個在浮點值之間進行動畫處理的 ValueAnimator。 |
static @NonNull?ValueAnimator | ofInt(@NonNull?int[]?values) 構造并返回一個在 int 值之間進行動畫處理的 ValueAnimator。 |
static @NonNull?ValueAnimator | ofObject(@NonNull?TypeEvaluator?evaluator,?@NonNull?Object[]?values) 構造并返回一個在對象值之間進行動畫處理的 ValueAnimator。 |
static @NonNull?ValueAnimator | ofPropertyValuesHolder(@NonNull?PropertyValuesHolder[]?values) 構造并返回一個 ValueAnimator,該動畫器在 PropertyValuesHolder 對象中指定的值之間進行動畫處理。 |
void | pause() 暫停正在運行的動畫。 |
void | resume() 恢復暫停的動畫,使動畫師在暫停時從中斷的位置繼續。 |
void | reverse() 反向播放 ValueAnimator。 |
void | setCurrentFraction(float?fraction) 將動畫的位置設置為指定的分數。 |
void | setCurrentPlayTime(long?playTime) 將動畫的位置設置為指定的時間點。 |
@NonNull?ValueAnimator | setDuration(long?duration) 設置動畫的長度。 |
void | setEvaluator(@NonNull?TypeEvaluator?value) 計算此動畫的動畫值時要使用的類型賦值器。 |
void | setFloatValues(@NonNull?float[]?values) 設置將在浮點值之間進行動畫處理。 |
static void | setFrameDelay(long?frameDelay) 動畫的每一幀之間的時間量(以毫秒為單位)。 |
void | setIntValues(@NonNull?int[]?values) 設置將在兩者之間進行動畫處理的 int 值。 |
void | setInterpolator(@Nullable?Interpolator?value) 用于計算此動畫的經過分數的插值器。 |
void | setNameForTrace(@NonNull?String?animationName) 設置要在系統跟蹤中顯示的動畫的名稱。 |
void | setObjectValues(@NonNull?Object[]?values) 設置要對此動畫進行動畫處理的值。 |
void | setRepeatCount(int?value) 設置動畫應重復的次數。 |
void | setRepeatMode(@ValueAnimator.RepeatMode?int?value) 定義此動畫到達末尾時應執行的操作。 |
void | setStartDelay(long?startDelay) 調用延遲啟動動畫的時間量(以毫秒為單位)。 |
void | setValues(@NonNull?PropertyValuesHolder[]?values) 設置每個屬性之間的值。 |
void | start() 啟動此動畫。 |
@NonNull?String | toString() |
繼承的常量 |
---|
來自androidx.core.animation.Animator |
繼承的方法 |
---|
來自androidx.core.animation.Animator |
常數
公共方法
areAnimatorsEnabled
public static boolean areAnimatorsEnabled()
返回系統范圍的動畫器當前是否已啟用。默認情況下,所有動畫器都處于啟用狀態。如果用戶將開發人員選項設置為將動畫器持續時間比例設置為 0,或者啟用電池保存模式(禁用所有動畫),則這可能會更改。
開發人員通常不需要調用此方法,但如果應用希望在禁用動畫器時顯示不同的體驗,則可以將此返回值用作要提供的體驗的決策程序。
返回 | |
---|---|
boolean | 布爾值 當前是否啟用動畫器。默認值為 。 |
取消
public void cancel()
取消動畫。與 不同,會導致動畫停止在其軌道上,向其偵聽器發送 ,然后發送消息。end
cancel()
onAnimationCancel
onAnimationEnd
必須在運行動畫的線程上調用此方法。
getAnimatedFraction
public float getAnimatedFraction()
返回當前動畫分數,這是動畫上最近幀更新中使用的經過/插值分數。
返回 | |
---|---|
float | 動畫的經過/插值部分。 |
getAnimatedValue
public @NonNull Object getAnimatedValue()
當只有一個屬性被動畫化時,由此計算的最新值。此值僅在動畫運行時是合理的。此只讀屬性的主要用途是在計算值后立即從調用 期間檢索值,該值在每個動畫幀期間調用。ValueAnimator
ValueAnimator
onAnimationUpdate
返回 | |
---|---|
@NonNull?Object | animatedValue 最近由此值為要進行動畫處理的單個屬性計算的值。如果有多個屬性正在進行動畫處理(由構造函數中的多個 PropertyValuesHolder 對象指定),則此函數返回其中第一個對象的動畫值。 |
getAnimatedValue
public @Nullable Object getAnimatedValue(@NonNull String propertyName)
由此計算的最新值為 。此只讀屬性的主要用途是在計算值后立即從調用 期間檢索值,該值在每個動畫幀期間調用。ValueAnimator
propertyName
ValueAnimator
onAnimationUpdate
返回 | |
---|---|
@Nullable?Object | animatedValue 最近由 . |
getCurrentPlayTime
public long getCurrentPlayTime()
獲取動畫在時間中的當前位置,該位置等于當前時間減去動畫開始的時間。尚未啟動的動畫將返回零值,除非動畫已通過 或 設置了播放時間,在這種情況下,它將返回設置的時間。setCurrentPlayTime
setCurrentFraction
返回 | |
---|---|
long | 動畫時間中的當前位置。 |
getDuration
獲取動畫的長度。默認持續時間為 300 毫秒。
返回 | |
---|---|
long | 動畫的長度(以毫秒為單位)。 |
getFrameDelay
public static long getFrameDelay()
動畫的每一幀之間的時間量(以毫秒為單位)。這是動畫將嘗試遵守的請求時間,但幀之間的實際延遲可能會有所不同,具體取決于系統負載和功能。這是一個靜態函數,因為相同的延遲將應用于所有動畫,因為它們都是從單個計時循環運行的。當動畫系統使用外部計時源(如顯示刷新率 (vsync))來控制動畫時,可以忽略幀延遲。請注意,應從調用的同一線程調用此方法,以便檢查該動畫的幀延遲。如果調用線程沒有 Looper,則會引發運行時異常。start
返回 | |
---|---|
long | 幀之間的請求時間(以毫秒為單位) |
getInterpolator
public @Nullable Interpolator getInterpolator()
返回此值動畫器使用的計時插值器。
返回 | |
---|---|
@Nullable?Interpolator | 此值動畫器的計時插值器。 |
getRepeatCount
<span style="color:var(--devsite-code-color)">public?int?<a data-cke-saved-href="https://developer.android.google.cn/reference/androidx/core/animation/ValueAnimator#getRepeatCount()" href="https://developer.android.google.cn/reference/androidx/core/animation/ValueAnimator#getRepeatCount()">getRepeatCount</a>()</span>
定義動畫應重復的次數。默認值為 0。
返回 | |
---|---|
int | 動畫應重復的次數,或 |
getRepeatMode
@ValueAnimator.RepeatMode
public int getRepeatMode()
定義此動畫到達末尾時應執行的操作。
返回 | |
---|---|
int | 或 |
getTotalDuration
public long getTotalDuration()
獲取動畫的總持續時間,包括動畫序列、開始延遲和重復。
當動畫無限重復時,或者當任何子動畫師重復時(通過 } 到 ),總持續時間將為 。否則,總持續時間是開始延遲和動畫運行時間的總和(即一次迭代的持續時間乘以迭代次數)。setRepeatCount
INFINITE
DURATION_INFINITE
返回 | |
---|---|
long | 動畫完成所需的總時間(從調用的時間開始)。 如果動畫或任何子動畫無限重復,將返回。 |
getValues
public @NonNull PropertyValuesHolder[] getValues()
返回此值動畫器在其間進行動畫處理的值。這些值存儲在 PropertyValuesHolder 對象中,即使 ValueAnimator 是使用簡單的值對象列表創建的。
返回 | |
---|---|
@NonNull?PropertyValuesHolder[] | PropertyValuesHolder[] 一個 PropertyValuesHolder 對象的數組,這些對象保存定義動畫的每個屬性的值。 |
isStarted
public boolean isStarted()
返回此動畫器是否已啟動和尚未結束。對于可重用的動畫師(除了 生成的單次動畫師之外,大多數動畫師都是),此狀態是 的超集,因為非零的動畫師將在延遲階段返回 true,而只有在延遲階段完成后才會返回 true。不可重用的動畫器在啟動后將始終返回 true,因為它們無法返回到非啟動狀態。createCircularReveal()
isRunning
startDelay
isStarted
isRunning
返回 | |
---|---|
boolean | 動畫器是否已啟動和尚未結束。 |
ofArgb
public static @NonNull ValueAnimator ofArgb(@NonNull int[] values)
構造并返回一個在顏色值之間進行動畫處理的 ValueAnimator。單個值意味著該值是要動畫到的值。但是,這在 ValueAnimator 對象中通常沒有用處,因為對象無法確定動畫的起始值(與 ObjectAnimator 不同,ObjectAnimator 可以從要設置動畫的目標對象和屬性派生該值)。因此,通常應有兩個或多個值。
參數 | |
---|---|
@NonNull?int[]?values | 動畫將隨時間推移在其之間設置動畫效果的一組值。 |
返回 | |
---|---|
@NonNull?ValueAnimator | 一個 ValueAnimator 對象,該對象設置為在給定值之間進行動畫處理。 |
浮點數
public static @NonNull ValueAnimator ofFloat(@NonNull float[] values)
構造并返回一個在浮點值之間進行動畫處理的 ValueAnimator。單個值意味著該值是要動畫到的值。但是,這在 ValueAnimator 對象中通常沒有用處,因為對象無法確定動畫的起始值(與 ObjectAnimator 不同,ObjectAnimator 可以從要設置動畫的目標對象和屬性派生該值)。因此,通常應有兩個或多個值。
參數 | |
---|---|
@NonNull?float[]?values | 動畫將隨時間推移在其之間設置動畫效果的一組值。 |
返回 | |
---|---|
@NonNull?ValueAnimator | 一個 ValueAnimator 對象,該對象設置為在給定值之間進行動畫處理。 |
ofInt
public static @NonNull ValueAnimator ofInt(@NonNull int[] values)
構造并返回一個在 int 值之間進行動畫處理的 ValueAnimator。單個值意味著該值是要動畫到的值。但是,這在 ValueAnimator 對象中通常沒有用處,因為對象無法確定動畫的起始值(與 ObjectAnimator 不同,ObjectAnimator 可以從要設置動畫的目標對象和屬性派生該值)。因此,通常應有兩個或多個值。
參數 | |
---|---|
@NonNull?int[]?values | 動畫將隨時間推移在其之間設置動畫效果的一組值。 |
返回 | |
---|---|
@NonNull?ValueAnimator | 一個 ValueAnimator 對象,該對象設置為在給定值之間進行動畫處理。 |
對象
public static @NonNull ValueAnimator ofObject(@NonNull TypeEvaluator evaluator, @NonNull Object[] values)
構造并返回一個在對象值之間進行動畫處理的 ValueAnimator。單個值意味著該值是要動畫到的值。但是,這在 ValueAnimator 對象中通常沒有用處,因為對象無法確定動畫的起始值(與 ObjectAnimator 不同,ObjectAnimator 可以從要設置動畫的目標對象和屬性派生該值)。因此,通常應有兩個或多個值。
注意:Object 值存儲為對原始對象的引用,這意味著調用此方法后對這些對象的更改將影響動畫器上的值。如果在調用此方法后對象將在外部發生突變,則調用方應改為傳遞這些對象的副本。
由于 ValueAnimator 不知道如何在任意對象之間進行動畫處理,因此此工廠方法還采用 TypeEvaluator 對象,ValueAnimator 將使用該對象來執行該插值。
參數 | |
---|---|
@NonNull?TypeEvaluator?evaluator | 將在每個動畫幀上調用的類型計算器,以在對象值之間提供必要的插值以派生動畫值。 |
@NonNull?Object[]?values | 動畫將隨時間推移在其之間設置動畫效果的一組值。 |
返回 | |
---|---|
@NonNull?ValueAnimator | 一個 ValueAnimator 對象,該對象設置為在給定值之間進行動畫處理。 |
OfPropertyValuesHolder
public static @NonNull ValueAnimator ofPropertyValuesHolder(@NonNull PropertyValuesHolder[] values)
構造并返回一個 ValueAnimator,該動畫器在 PropertyValuesHolder 對象中指定的值之間進行動畫處理。
參數 | |
---|---|
@NonNull?PropertyValuesHolder[]?values | 一組 PropertyValuesHolder 對象,其值將隨時間推移進行動畫處理。 |
返回 | |
---|---|
@NonNull?ValueAnimator | 一個 ValueAnimator 對象,該對象設置為在給定值之間進行動畫處理。 |
暫停
public void pause()
暫停正在運行的動畫。此方法只應在啟動動畫的同一線程上調用。如果動畫尚未或已結束,則忽略調用。暫停的動畫可以通過調用 來恢復。?started
resume
參見 | |
---|---|
resume | |
isPaused | |
Animator.AnimatorPauseListener |
恢復
public void resume()
恢復暫停的動畫,使動畫師在暫停時從中斷的位置繼續。此方法只應在啟動動畫的同一線程上調用。對當前未暫停的動畫器進行 resume() 的調用將被忽略。
參見 | |
---|---|
pause | |
isPaused | |
Animator.AnimatorPauseListener |
反向
public void setCurrentFraction(float fraction)
反向播放 ValueAnimator。如果動畫已在運行,它將自行停止并從調用 reverse 時達到的點向后播放。如果動畫當前未運行,則它將從末尾開始并向后播放。此行為僅針對當前動畫設置;動畫的未來播放將使用向前播放的默認行為。
設置電流分數
public void setCurrentFraction(float fraction)
將動畫的位置設置為指定的分數。此分數應介于 0 和動畫的總分數之間,包括任何重復。也就是說,分數 0 會將動畫定位在重復一次的反轉動畫器的開頭,值 1 定位在末尾,值 2 定位在末尾。如果動畫尚未啟動,則在設置為此分數后,它將不會向前前進;它只需將分數設置為此值,并根據該分數執行任何適當的操作。如果動畫已經在運行,則 setCurrentFraction() 會將當前分數設置為此值,并從該點繼續播放。 由于更改分數,不會調用事件;這些事件僅在動畫運行時處理。androidx.core.animation.Animator.AnimatorListener
參數 | |
---|---|
float?fraction | 動畫前進或倒帶到的分數。動畫師的最大分數范圍之外的值將被鉗制到正確的范圍。 |
設置當前播放時間
public void setCurrentPlayTime(long playTime)
將動畫的位置設置為指定的時間點。此時間應介于 0 和動畫的總持續時間(包括任何重復)之間。如果動畫尚未啟動,則設置為此時后將不再前進;它只會將時間設置為此值,并根據該時間執行任何適當的操作。如果動畫已在運行,則 setCurrentPlayTime() 會將當前播放時間設置為此值,并從該點繼續播放。
參數 | |
---|---|
long?playTime | 動畫前進或倒帶的時間(以毫秒為單位)。 |
設置持續時間
public @NonNull ValueAnimator setDuration(long duration)
設置動畫的長度。默認持續時間為 300 毫秒。
參數 | |
---|---|
long?duration | 動畫的長度(以毫秒為單位)。此值不能為負數。 |
返回 | |
---|---|
@NonNull?ValueAnimator | ValueAnimator 使用 setDuration() 調用的對象。通過此返回值,可以更輕松地將構造語句組合在一起,然后設置持續時間,如 中所示。 |
setEvaluator
public void setEvaluator(@NonNull TypeEvaluator value)
計算此動畫的動畫值時要使用的類型賦值器。系統將根據構造函數中的類型和自動分配浮點數或整數賦值器。但是,如果這些值不是這些基元類型之一,或者需要不同的計算(例如表示顏色的 int 值所必需的),則需要分配自定義計算器。例如,在對顏色值運行動畫時,應使用 來獲取正確的 RGB 顏色插值。startValue
endValue
ArgbEvaluator
如果此值動畫器之間只有一組值進行動畫處理,則此賦值器將用于該集。如果有幾組值正在進行動畫處理,例如在 ValueAnimator 上設置了 PropertyValuesHolder 對象,則賦值器僅分配給第一個 PropertyValuesHolder 對象。
參數 | |
---|---|
@NonNull?TypeEvaluator?value | 此動畫要使用的賦值器 |
設置浮點值
public void setFloatValues(@NonNull float[] values)
設置將在浮點值之間進行動畫處理。單個值意味著該值是要動畫到的值。但是,這在 ValueAnimator 對象中通常沒有用處,因為對象無法確定動畫的起始值(與 ObjectAnimator 不同,ObjectAnimator 可以從要設置動畫的目標對象和屬性派生該值)。因此,通常應有兩個或多個值。
如果已經通過多個 PropertyValuesHolder 對象為此 ValueAnimator 定義了多組值,則此方法將為其中第一個對象設置值。
參數 | |
---|---|
@NonNull?float[]?values | 動畫將隨時間推移在其之間設置動畫效果的一組值。 |
設置幀延遲
public static void setFrameDelay(long frameDelay)
動畫的每一幀之間的時間量(以毫秒為單位)。這是動畫將嘗試遵守的請求時間,但幀之間的實際延遲可能會有所不同,具體取決于系統負載和功能。這是一個靜態函數,因為相同的延遲將應用于所有動畫,因為它們都是從單個計時循環運行的。當動畫系統使用外部計時源(如顯示刷新率 (vsync))來控制動畫時,可以忽略幀延遲。請注意,應從調用的同一線程調用此方法,以使新的幀延遲對該動畫生效。如果調用線程沒有 Looper,則會引發運行時異常。start
參數 | |
---|---|
long?frameDelay | 幀之間的請求時間(以毫秒為單位) |
設置整數值
public void setIntValues(@NonNull int[] values)
設置將在兩者之間進行動畫處理的 int 值。單個值意味著該值是要動畫到的值。但是,這在 ValueAnimator 對象中通常沒有用處,因為對象無法確定動畫的起始值(與 ObjectAnimator 不同,ObjectAnimator 可以從要設置動畫的目標對象和屬性派生該值)。因此,通常應有兩個或多個值。
如果已經通過多個 PropertyValuesHolder 對象為此 ValueAnimator 定義了多組值,則此方法將為其中第一個對象設置值。
參數 | |
---|---|
@NonNull?int[]?values | 動畫將隨時間推移在其之間設置動畫效果的一組值。 |
設置插值器
public void setInterpolator(@Nullable Interpolator value)
用于計算此動畫的經過分數的插值器。插值器確定動畫是以線性運動還是非線性運動(如加速和減速)運行。默認值為AccelerateDecelerateInterpolator
參數 | |
---|---|
@Nullable?Interpolator?value | 此動畫要使用的插值器。值 將導致線性插值。 |
設置名稱跟蹤
public void setNameForTrace(@NonNull String animationName)
設置要在系統跟蹤中顯示的動畫的名稱。這使特定動畫在系統跟蹤中可識別。
參數 | |
---|---|
@NonNull?String?animationName | 使實例在系統跟蹤中可識別的動畫的名稱 |
設置對象值
public void setObjectValues(@NonNull Object[] values)
設置要對此動畫進行動畫處理的值。單個值意味著該值是要動畫到的值。但是,這在 ValueAnimator 對象中通常沒有用處,因為對象無法確定動畫的起始值(與 ObjectAnimator 不同,ObjectAnimator 可以從要設置動畫的目標對象和屬性派生該值)。因此,通常應有兩個或多個值。
注意:Object 值存儲為對原始對象的引用,這意味著調用此方法后對這些對象的更改將影響動畫器上的值。如果在調用此方法后對象將在外部發生突變,則調用方應改為傳遞這些對象的副本。
如果已經通過多個 PropertyValuesHolder 對象為此 ValueAnimator 定義了多組值,則此方法將為其中第一個對象設置值。
在 ValueAnimator 上應該設置一個 TypeEvaluator,它知道如何在這些值對象之間進行插值。ValueAnimator 只知道如何在其他 setValues() 方法中指定的基元類型之間進行插值。
參數 | |
---|---|
@NonNull?Object[]?values | 要在其間進行動畫處理的值集。 |
setRepeatCount
public void setRepeatCount(int value)
設置動畫應重復的次數。如果重復計數為 0,則永遠不會重復動畫。如果重復計數大于 0 或 ,則將考慮重復模式。默認情況下,重復計數為 0。INFINITE
參數 | |
---|---|
int?value | 動畫應重復的次數 |
設置重復模式
public void setRepeatMode(@ValueAnimator.RepeatMode int value)
定義此動畫到達末尾時應執行的操作。僅當重復計數大于 0 或 時,才應用此設置。默認值為 。INFINITE
RESTART
參數 | |
---|---|
@ValueAnimator.RepeatMode?int?value |
|
設置啟動延遲
public void setStartDelay(long startDelay)
調用延遲啟動動畫的時間量(以毫秒為單位)。請注意,啟動延遲應始終為非負數。任何負啟動延遲都將在 N 及以上時被鉗制為 0。start
參數 | |
---|---|
long?startDelay | 延遲量(以毫秒為單位) |
設置值
public void setValues(@NonNull PropertyValuesHolder[] values)
設置每個屬性之間的值。此函數由采用值列表的 ValueAnimator 的構造函數在內部調用。但是,可以在沒有值的情況下構造 ValueAnimator,并且可以調用此方法來手動設置值。
參數 | |
---|---|
@NonNull?PropertyValuesHolder[]?values | 每個屬性之間的值集。 |