概述
Rating,评价,用于评价的星条显示器。
1.重要属性
- android:numStars : 星星个数
- android:rating : 默认点亮的星星星星个数
- android:stepSize : 步进数,1,0.5是常用值
2.监听器
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
Log.e("------------","当前的评价等级:"+rating);
}
});
2016-04-20_082407.png
3.系统样式
style="@android:style/Widget.Holo.RatingBar"
![2016-04-20_082729.png](http:https://img.haomeiwen.com/i1876233/e69fa063ea56fbe4.png?imageMogr2/auto-orient/strip%
7CimageView2/2/w/1240)
style="@android:style/Widget.RatingBar"
style="@android:style/Widget.Material.RatingBar"
style="@android:style/Widget.DeviceDefault.RatingBar"
主要是有:
Holo,默认,Material,DeviceDefault
还有一些其他的标签:
- small 小
- light 亮
- Indicator 指示器,不能选择评价了。
4.自定义
系统的:
<style name="myRatingBar">
<item name="indeterminateOnly">false</item>
<item name="progressDrawable">@drawable/ratingbar</item>
<item name="indeterminateDrawable">@drawable/ratingbar</item>
<item name="minHeight">38dip</item>
<item name="maxHeight">38dip</item>
<item name="thumb">@null</item>
<item name="isIndicator">true</item>
</style>
在 src/main/values/style.xml中新建一个自定义的
这里就能设置一些属性,宽高等。
<style name="myRatingBar">
<item name="android:progressDrawable">@drawable/hh</item>
<item name="android:minHeight">50dip</item>
<item name="android:maxHeight">50dip</item>
<item name="android:thumb">@null</item>
<item name="android:isIndicator">true</item>
</style>
主要是hh的样式:
<?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/A">
</item>
<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/B">
</item>
<item android:id="@android:id/progress"
android:drawable="@drawable/C">
</item>
</layer-list>
这里,
- backgroud:是用来填充背景图片的,和进度条非常类似,当我们设置最高评分时(android:numStars),系统就会根据我们的设置,来画出以星星为单位的背景(假如android:numStars="5",就会画出5颗灰色的星星)
- progress:是用来在背景图片基础上进行填充的指示属性(和进度条类似,第一进度位置)
- secondaryProgress:同progress一样属于第二进度位置(如果不定义这个,进度条拖动,每次就画出一整颗星星(亮),第二进度(暗)没有覆盖掉第一进度之后的位置,从左往右是拖不出来N.5颗星星的,这样评分效果就不完整)
网友评论