Android:动画评级栏

时间:2014-06-19 15:40:15

标签: android android-animation ratingbar

我正在创建一个Android应用程序,需要评级栏来表示每个级别的进度。 我已经想过如何使用自定义和默认的评级栏现在我想在评级栏进度中添加动画。

每当我设置星星的数量(意思是我设置android:isIndicator="true"仅用于向用户显示不可由他编辑时)它应该做一些动画,如旋转和填充栏。请帮我解决我应该使用的代码片段。

我已经包含了用于评分栏创建的代码:

<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 个答案:

答案 0 :(得分:4)

要将评分设置为特定值,您可以使用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

我不确定你在旋转动画中寻找的是什么,但这应该为你提供一个很好的起点来添加你需要的动画。