继承关系
AppCompatRatingBar
效果图
xml
属性 | 参数 |
---|---|
android:isIndicator | 是否仅用作显示,true:用户点击无效,默认是true |
android:numStars | 星星的数量 |
android:rating | 默认几个,float |
android:stepSize | 点击一次增加多少 |
<RatingBar
style="@android:style/Widget.DeviceDefault.RatingBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:isIndicator="false"
android:numStars="5"
android:rating="2.5"
android:stepSize="0.5"/>
上面这些属性也可以用java代码设置。
点击事件
点击事件中可以处理我们自己的逻辑。不给ratingbar添加监听,点击他也会变化
ratingBar = (RatingBar) findViewById(R.id.ratingBar);
ratingBar.setRating(3.5f);
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
if (fromUser) {//fromUser rating数量是否发生改变
ratingBar.setRating(rating);
}
Log.d(TAG, "rating=" + ratingBar.getRating());
Log.d(TAG, "fromUser=" + fromUser);
}
});
自定义progressDrawable
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:isIndicator="false"
android:numStars="5"
android:progressDrawable="@drawable/ratingbar_drawable"
android:stepSize="0.5"/>
<?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/rating_small_empty" />
<item android:id="@android:id/secondaryProgress" android:drawable="@drawable/rating_small_half" />
<item android:id="@android:id/progress" android:drawable="@drawable/rating_small_full" />
</layer-list>