Android高版本中有一个自带控件:RatingBar,是一个评分控件。
定义方式和其他基本控件一样,都是在布局文件里面:
<RatingBar
android:id="@+id/rating_bar"
android:layout_width="wrap_content"
android:layout_height="45dp"
android:background="#dcdcdc"
android:rating="2"
android:stepSize="5"
android:stepSize="0.5"
android:clickable="true"
android:isIndicator="false"
/>
RatingBar控件的一些基本属性如下:
rating:设置默认点亮的星星数,为整形
numStarts:设置总共的星星数,为整形
stepSize:步长,就是每次点击所点亮的星星长度,为浮点类型
这是最基本的,其他的可以自己百度一下。
默认效果如下:
当然,你可以在上面实现评分多少的改变的,只需要在评分条上左右滑动就行。
但是
我想大部分人都不会满足于简单的默认模式,所以接下来写一下自定义评分条的过程,很简单。
1.首先,你的准备两张照片 like this:
灰色的作为背景,红色的作为评分后的样式。
2.然后,在dramable文件目录下,新建root_rating_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/ic_nearby_star_grey"/>
<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/ic_nearby_star_grey"/>
<item android:id="@android:id/progress"
android:drawable="@drawable/ic_nearby_star_red"/>
</layer-list>
说明一下,里面的三个id,全都是系统自带的id,你只需要写出来就是了,系统会自动匹配。
图片是我上面说的两张图片,第一个和第二个id图片是一样的,第三个是评分后显示的id。
3 接着,去styles.xml文件中如下定义:
<style name="myRatingBar" parent="@android:style/Widget.RatingBar">
<!-- 定义星星图片 -->
<item name="android:progressDrawable">@drawable/root_rating_bar</item>
</style>
语句中的progressDrawable是评分控件的样式,引用的就是之前我们自己定义的root_rating_bar.xml文件,给这个style文件取名叫myRatingBar。
4.再来,在你的想要显示的布局上面添加RatingBar控件,并做一些属性的设置。
这里第一句,style=”@style/myRatingBar”,就是引用我们自定义的控件样式。
<RatingBar
style="@style/myRatingBar"
android:id="@+id/rating_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="0.5"
android:rating="2.5"
/>
这样就大功搞成了。最后的样式就不贴了,还有一部分其他文件没写完,有机会再补。