2015-01-07 11 views
9

Ciao Sto usando la barra di valutazione personalizzata con immagini personalizzate. Devo fornire spazio tra le stelle. Quando aumento l'altezza minima e l'altezza massima, l'immagine stellare rimane la stessa.Come dare spazio tra le stelle della barra di valutazione Android?

<RelativeLayout 
    android:id="@+id/RelativeLayout01" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" 
    android:padding="5dp"> 

    <TextView 
     android:id="@+id/allreviews" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:text="Rating" 
     android:layout_marginLeft="8dp" 
     android:textSize="14sp" /> 

     <RatingBar 
     android:id="@+id/reviewallrating" 
     style="@style/customRatingBar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="10dp" 
     android:layout_marginTop="3dp" 
     android:layout_toRightOf="@+id/allreviews" 
     android:isIndicator="false" 
     android:numStars="5" 
     android:stepSize="0.1" /> 

    </RelativeLayout> 

stili: @ drawable/star_rating_bar_full 12dip 12dip

star_rating_bar_full.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/star_ratingbar_full_empty" /> 
    <!--  <item android:id="@+android:id/secondaryProgress" 
     android:drawable="@drawable/star_ratingbar_full_empty" /> --> 
     <item android:id="@+android:id/progress" 
     android:drawable="@drawable/star_ratingbar_full_filled" /> 
     </layer-list> 

star_ratingbar_full_empty: 

    <?xml version="1.0" encoding="utf-8"?> 

    <!-- This is the rating bar drawable that is used to 
    show a filled cookie. --> 
    <selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/star_gray" /> 

    <item android:state_focused="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/star_gray" /> 

<item android:state_selected="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/star_gray"/> 

<item android:drawable="@drawable/star_gray" /> 

</selector> 
star_ratingbar_fullfilled.xml: 

<item android:state_pressed="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/yellow_star" /> 

    <item android:state_focused="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/yellow_star" /> 

    <item android:state_selected="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/yellow_star" /> 

<item android:drawable="@drawable/yellow_star" /> 

Ho usato style = "? Android: attr/ratingBarStyle" negli stili ma l'output rimane lo stesso. enter image description here

+2

Si potrebbe semplicemente aggiungere dello spazio vuoto ai lati ** sinistro e destro ** dei propri PNG. A proposito ... come sono "altezza minima e altezza massima" in relazione alla ** larghezza ** su cui vuoi agire? –

+0

ok. Ho usato la larghezza della barra di valutazione come match_parent ma va con più stelle cioè più di 5 stelle e la dimensione rimane troppo piccola. – Shadow

+0

No. C'è qualche problema di comunicazione. Lascia la larghezza della RatingBar come 'wrap_content'. Aumenta la larghezza dei PNG grigi e gialli in ** GIMP ** (o qualsiasi altro programma di editor grafico ** che usi). Solo la tela, senza allungare la stella. –

risposta

9

Si potrebbe semplicemente aggiungere dello spazio vuoto ai lati sinistro e destro dei PNG.

Vale a dire aumentare la larghezza dei PNG grigi e gialli in GIMP (o qualsiasi altro programma di editor grafico utilizzato).
Solo la tela, senza allungare l'icona a stella.

+2

Ma non è quella soluzione di Kinna? –

+0

beh ... perché no? –

+0

Ma cosa succede se si usa il colore della tinta, ma non i file PNG? – karate

9

Se si utilizza Drawable per le stelle. Assicurati che il tuo drawable abbia un padding sinistro in base alle tue esigenze nell'immagine png.

Altrimenti attraverso il codice non funziona. Alcuni giorni fa ho bloccato lo stesso problema. Ho attraversato usando l'immagine imbottita a sinistra. Spero che funzionerà.

Problemi correlati