以下是主要代碼,難點和疑問點都寫在注釋中:
/** * 開始背景動畫(此處為屬性動畫) */ private void startBackgroundAnimator(){ /* *參數解釋: *target:設置屬性動畫的目標類,此處是當前自定義view所以使用this *propertyName:屬性名稱。(要對View的那個屬性執行動畫操作) *values數組:根據時間的推移動畫將根據數組的內容進行改變 */ ValueAnimator anim = ObjectAnimator.ofInt(this, "backgroundColor", Color.RED,Color.BLUE,Color.GRAY,Color.GREEN); //動畫持續時間為3秒 anim.setDuration(3000); /* * ArgbEvaluator:這種評估者可以用來執行類型之間的插值整數值代表ARGB顏色。 * FloatEvaluator:這種評估者可以用來執行浮點值之間的插值。 * IntEvaluator:這種評估者可以用來執行類型int值之間的插值。 * RectEvaluator:這種評估者可以用來執行類型之間的插值矩形值。 * * 由於本例是改變View的backgroundColor屬性的背景顏色所以此處使用ArgbEvaluator */ anim.setEvaluator(new ArgbEvaluator()); //設置動畫重復次數,此處設置無限重復 anim.setRepeatCount(ValueAnimator.INFINITE); //設置重復模式 anim.setRepeatMode(ValueAnimator.REVERSE); //開啟動畫 anim.start(); }
這里要說明一下:我在測試view的backgroundResource時只會顯示一張圖片。而不會形成動畫效果。有知道的朋友幫忙回一下貼,讓我也跟着學習一下。謝謝。