2015-11-16 14 views
8

Próbuję zmienić gwiazdy moim pasku ocena tworząc nowy styl, to co zrobiłem:Jak zmienić oceny gwiazdek na Androidzie?

<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> 

odkształcalne/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> 

ocena View 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" /> 

i tutaj są obrazy holowania:

rating_star_empty rating_star_filled

ale nie wiem dlaczego mam pionowe linie pod gwiazdami jak widać int poniżej zdjęciu: enter image description here

EDIT: rozwiązany: Właśnie ustawić wysokość bar ocenił jako obraz wysokość.

dziękuję

+0

Możesz chcieć użyć wrap_content zamiast minHeight i maxheight –

+0

Możesz porównać swój kod z [to] (http://www.geeks.gallery/how-to-code-custom-ratingbar- in-android /). Być może to ci pomoże. – activesince93

+0

To może być błąd w pasku oceny. Mam ten sam problem wiele razy, ale bez pożądanych rezultatów. – theLazyFinder

Odpowiedz

4

Ja decyduję o tym problemie w ten sposób. Można tworzyć żadnych wartości w res/values/dimens.xml dla każdego ekranu (MDPI, hdpi, xhdpi, xxhdpi, xxxhdpi), takich jak:

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

i użyj tego:

<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> 

Można też zastosować tę logikę do rozciągliwej (rating_star_empty i rating_star_filled)

+1

' 36dp' Chyba masz na myśli ' 36dp' –

+1

sory man, tak masz rację! To moje błędy w pisowni – walkmn

Powiązane problemy