1. 程式人生 > >Android RatingBar 自定義樣式

Android RatingBar 自定義樣式

android style

Android RatingBar 自定義樣式

1.先定義Style:

<style name="RadingStyle" parent="@android:style/Widget.RatingBar">
    <!-- 定義星星圖片 -->
    <item name="android:progressDrawable">@drawable/layer_live_rating_bar</item>
    <!-- 根據自定義星星圖片的大小,設置相應的值,否則可能顯示不全 -->
    <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"//寬度一般都是自適應吧
    android:layout_height="wrap_content"
    android:maxHeight="15dp"//兩個都寫就能限制高度
    android:minHeight="15dp"//兩個都寫就能限制高度
    android:rating="3"//默認的評分
    android:stepSize="0.5"//評分最小單位
    android:clickable="true"
    android:isIndicator="false"//是否只是展示,展示就不可點擊
    />
//........

4. 最終效果:

技術分享

5.註意點:

這兩個屬性同時寫才能確定高度,不知道還有沒其他方式

android:maxHeight="15dp"//兩個都寫就能限制高度
android:minHeight="15dp"//兩個都寫就能限制高度

isIndicator屬性確定評分條是否可以點擊評分,false就是只是展示而已

android:isIndicator="false"//是否只是展示,展示就不可點擊


Android RatingBar 自定義樣式