RatingBar使用

RatingBar是ProgressBar的一個延伸,ProgressBar的進度一般由代碼控制,RatingBar的進度可以拖拽來控制。

默認效果如下:

看到這個效果圖之後,您可能會想到打車軟件和訂餐軟件上打五星好評的UI了吧,RatingBar可以完美實現這個效果。

(1)監聽

監聽RatingBar進度情況的代碼如下:

    ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
        }
    });

rating參數爲當前進度值。

(2)RatingBar的4個屬性
  • android:isIndicator

RatingBar的指示是否起作用,默認爲false,如果爲true,RatingBar的進度不能被人爲修改。

  • android:numStars

顯示星星的總數量,必須爲整數。

  • android:rating

設置默認評分值,值爲浮點數。

  • android:stepSize

評分每次增加的值(最小變化值),值爲浮點數。

(3)系統樣式

系統樣式有三種:

  • 默認樣式
    style="?attr/ratingBarStyle"

    style="@style/Widget.AppCompat.RatingBar"
  • 指示器樣式
    style="?attr/ratingBarStyleIndicator"

    style="@style/Widget.AppCompat.RatingBar.Indicator"
  • 小型樣式
    style="?attr/ratingBarStyleSmall"

    style="@style/Widget.AppCompat.RatingBar.Small"
(4)progressDrawable的使用

系統無樣式往往還無法滿足大部分需求,如果需要將星星換成其它圖案呢?

使用progressDrawable屬性,設置RatingBar的背景樣式。效果圖如下:

代碼如下:

    android:progressDrawable="@drawable/ratingbar_bg"

ratingbar_bg.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="@mipmap/xiong_off"/>
    <item
        android:id="@android:id/progress"
        android:drawable="@mipmap/xiong_on"/>
</layer-list>

兩張圖片如下:

[本章完...]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章