2016-10-15 86 views
2

我想要定製RatingBar的每個星形看起來不同。自定義RatingBar星星不同

當我看着其源代碼RatingBar或其超類AbsSeekBar/ProgressBar,我無法識別這樣的選項,它只能爲整個視圖提供progress/secondaryProgress和背景。最接近的是使用thumbDrawable,但它的效用完全不同(對於不確定的SeekBar)。

除了做一個完全自定義的View以外,還有其他的選擇來複制這樣的功能嗎?

這是一個帶的RatingBar我想創建一個圖片: custom ratingBar

我不得不提,每顆星(最後選定星),將有一個不同的「臉」,而且將永遠是準確5星(numStars財產)。任何想法都非常感謝!

回答

1

看看這個圖書館starBar by badoo有一到十顆星與不同的彩色圖像像紅色橙黃色綠色你可以改變資源中的圖像,以獲得您的選擇吧。 另外這個link會有幫助。

+0

雖然我傾向於不使用自定義視圖,其創建與RatingBar類似的功能,但擴展View類,我認爲你值得爲這個問題提供的賞金,因爲你的答案足夠接近我複製的問題。我會將問題留待更多時間,之後我會接受你的回答。 – DoruAdryan

1

您可以使用SmileView,提供不同的可繪製評級查看每個等級值,也正是基於badoo's StarBar view

使用

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 
     ... 

     <com.eugeneek.smilebar.SmileBar 
      android:id="@+id/starBar" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      app:smileWidth="50dp" 
      app:smileHeight="50dp" 
      app:smileDefault="@drawable/none" 
      app:smileRate1="@drawable/one" 
      app:smileRate2="@drawable/two" 
      app:smileRate3="@drawable/three" 
      app:smileRate4="@drawable/four" 
      app:smileRate5="@drawable/five" 
      app:horizontalSpacing="8dp" 
      app:rating="1" 
      app:enabled="true"/> 

     ... 
    </LinearLayout>