Android使用屬性動畫ValueAnimator動態改變SurfaceView的背景顏色


以下是主要代碼,難點和疑問點都寫在注釋中:

/**
     * 開始背景動畫(此處為屬性動畫)
     */
    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時只會顯示一張圖片。而不會形成動畫效果。有知道的朋友幫忙回一下貼,讓我也跟着學習一下。謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM