1、RatingBar是基于SeekBar和ProgressBar的扩展,星星默认颜色是绿色。
2、属性介绍:
numStars:显示的星星数量。
rating:设置默认的分数,浮点数。
stepSize:设置步长,浮点数。
isIndicator:true时,不可更改分数。
style:设置星星的格式。android提供两种默认的格式:大星星和小星星。style="?android:attr/ratingBarStyleSmall"、style="?android:attr/ratingBarStyleIndicator"
3、自定义
自定义RatingBar指自定义他的属性style。
原理:1)将style设置为我们自定义的style;2)在自定义style中继承@android:style/Widget.RatingBar,重写android:progressDrawable属性,设置RatingBar控件的大小;3)android:progressDrawable中设置选中的图片和未选中的图片。
首先在布局文件中加入RatingBar:
<RatingBar
android:id="@+id/rt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="3"
style="@style/MyRatingBar"/>/
然后再res/values目录下建立MyRatingBar.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/bar</item>
<item name="android:minHeight">15dip</item>
<item name="android:maxHeight">15dip</item>
</style>
</resources>
最后在res/drawable目录下建立bar.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/rating"/>
<item
android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/rating"/>
<item
android:id="@+android:id/progress"
android:drawable="@drawable/rating_show"/>
</layer-list>
说明:定义组件的一级背景图、二级背景图时,里面的id都是系统的id,当系统运行到这里时会根据这个id去重画组件。
其实很多组件都可以通过这样的方法来使用。下载android源码,在源码\base\core\res\res\values目录下找到style.xml文件,该文件是android系统运行时需要加载的文件,里面保存了所有组件的样式定义。在里面你可以找到<style name="Widget.RatingBar.Small">,也有其他<style name="Widget SeekBar">、<style name="Widget.ProgressBar.Small">等等,这里的属性我们继承后就可以被重写成其他的了。