2015-11-16 26 views
8

Sto cercando di cambiare le stelle del mio bar voto con la creazione di nuovo stile, questo quello che ho fatto:Come modificare la valutazione di Android Stelle della barra?

<style name="RatingBarSmall" parent="android:Widget.DeviceDefault.Light.RatingBar.Indicator"> 
     <item name="android:progressDrawable">@drawable/rating_bar</item> 
     <item name="android:minHeight">36dp</item> 
     <item name="android:maxHeight">36dp</item> 
    </style> 

drawable/rating_bar:

<?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/rating_star_empty" /> 
    <item 
     android:id="@android:id/secondaryProgress" 
     android:drawable="@drawable/rating_star_empty" /> 
    <item 
     android:id="@android:id/progress" 
     android:drawable="@drawable/rating_star_filled" /> 
</layer-list> 

Valutazione vista bar xml:

<RatingBar 
        android:id="@+id/ratingBar" 
        style="@style/RatingBarSmall" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_weight="0" 
        android:isIndicator="true" 
        android:rating="5" /> 

ed ecco le immagini di rimorchio:

rating_star_empty rating_star_filled

ma non so il motivo per cui ho ottenuto linee verticali sotto le stelle, come potete vedere int l'immagine sotto: enter image description here

EDIT: Risolto: ho appena impostato l'altezza della barra rating come l'immagine altezza.

grazie

+0

Si potrebbe desiderare di utilizzare wrap_content invece di minHeight e maxheight –

+0

È possibile confrontare il codice con [questo] (http://www.geeks.gallery/how-to-code-custom-ratingbar- in-Android /). Potrebbe essere che ti può aiutare. – activesince93

+0

Questo potrebbe essere un errore nella barra di valutazione. Affronto lo stesso problema molte volte ma senza risultati desiderati. – theLazyFinder

risposta

4

decido questo problema in questo modo. È possibile creare i valori in res/values/dimens.xml per ogni schermata (MDPI, hdpi, xhdpi, xxhdpi, xxxhdpi) come:

<dimen name="raiting_min_height">36dp</dimen> 
<dimen name="raiting_min_width">36dp</dimen> 

E utilizzare questo:

<style name="RatingBarSmall" parent="android:Widget.DeviceDefault.Light.RatingBar.Indicator"> 
    <item name="android:progressDrawable">@drawable/rating_bar</item> 
    <item name="android:minHeight">@dimen/raiting_min_height</item> 
    <item name="android:maxHeight">@dimen/raiting_min_width</item> 
</style> 

Oppure è possibile applicare tale logica al vostro drawable (rating_star_empty e rating_star_filled)

+1

' 36dp' Immagino tu intenda ' 36dp' –

+1

sory man, sì hai ragione! Sono i miei errori di ortografia – walkmn