Android RatingBar 自定義樣式
1.先定義Style:
<style name="RadingStyle" parent="@android:style/Widget.RatingBar">
<!-- 定義星星圖片 -->
<item name="android:progressDrawable">@drawable/layer_live_rating_bar</item>
<!-- 根據(jù)自定義星星圖片的大小,設(shè)置相應(yīng)的值,否則可能顯示不全 -->
<item name="android:numColumns">5</item>
//這里放一些你覺得公共的屬性(你可以在控件里覆蓋這里的屬性)
</style>
2. Drawable里的layer_live_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_rate_stroke">
</item>
<item
android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/ic_rate_stroke">
</item>
<item
android:id="@+android:id/progress"
android:drawable="@drawable/ic_rate_solid">
</item>
</layer-list>
3. 在布局文件里使用RatingBar:
//........
<RatingBar
android:id="@+id/rb"
style="@style/RadingStyle"
android:layout_width="wrap_content"http://寬度一般都是自適應(yīng)吧
android:layout_height="wrap_content"
android:maxHeight="15dp"http://兩個都寫就能限制高度
android:minHeight="15dp"http://兩個都寫就能限制高度
android:rating="3"http://默認(rèn)的評分
android:stepSize="0.5"http://評分最小單位
android:clickable="true"
android:isIndicator="false"http://是否只是展示,展示就不可點(diǎn)擊
/>
//........
4. 最終效果:
5.注意點(diǎn):
這兩個屬性同時寫才能確定高度,不知道還有沒其他方式
android:maxHeight="15dp"http://兩個都寫就能限制高度
android:minHeight="15dp"http://兩個都寫就能限制高度
isIndicator
屬性確定評分條是否可以點(diǎn)擊評分,false就是只是展示而已
android:isIndicator="false"http://是否只是展示,展示就不可點(diǎn)擊