2014-06-19 46 views
-3

我正在創建一個需要評分欄來表示每個級別的進度的Android應用程序。 我想通過自定義和默認使用評分欄現在我想添加動畫到評分欄的進度。Android:動畫評分欄

每當我設置星星的數量(意思是我設置android:isIndicator="true"只用於顯示給用戶不可編輯的),它應該做一些像旋轉和填充條的動畫。請幫我看看代碼片段I應該使用。

我已經包含的代碼,我使用的評價欄中創建:

<RatingBar 
    android:id="@+id/ratingBar1" 
    style="@style/myRatingBar" 
    android:layout_width="wrap_content" 
    android:layout_height="30dp" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:numStars="5" 
    android:rating="3" 
    android:isIndicator="true" /> 

繪製/ ratingstars.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@+android:id/background" 
     android:drawable="@drawable/star_empty" /> 
<item android:id="@+android:id/secondaryProgress" 
     android:drawable="@drawable/star_empty" /> 
<item android:id="@+android:id/progress" 
     android:drawable="@drawable/star" /> 
</layer-list> 

值/ styles.xml

<resources> 

<style name="myRatingBar" parent="@android:style/Widget.RatingBar"> 
    <item name="android:progressDrawable">@drawable/ratingstars</item> 
    <item name="android:minHeight">22dip</item> 
    <item name="android:maxHeight">22dip</item> 
</style> 

</resources> 

請幫助我添加動畫評級當我使用setRating(int)從活動

+1

你有沒有試過閱讀Android [動畫文檔](http://developer.android.com/guide/topics/graphics/overview.html)? –

回答

3

要將評分設置爲特定值,可以使用ObjectAnimator(API 11+)。

這裏的動畫從當前值的RatingBar 5的例子:

RatingBar myRatingBar = findViewById(R.id.my_rating_bar); 
float current = myRatingBar.getRating(); 

ObjectAnimator anim = ObjectAnimator.ofFloat(myRatingBar, "rating", current, 5f); 
anim.setDuration(1000); 
anim.start(); 

有關如何動畫視圖的性能,讀取Property Animation documentation更多信息。

我不確定你在旋轉動畫中尋找什麼,但是這應該會給你一個很好的開始添加你需要的動畫。

+0

感謝您的回答。儘管我想到了差異動畫,但您提供的內容令人滿意。作爲初學者,我覺得這很有用。然而,我不知道如何評價像憤怒的小鳥遊戲中的動畫...... – mkumar

+0

許多遊戲使用OpenGL或Unity等遊戲引擎在畫布上繪製而不是使用視圖。 –