2010-04-29 24 views

risposta

24

Se la barra di avanzamento è definito nel layout XML, sembra che si definisce la sua altezza in questo modo:

<ProgressBar 
android:minHeight="20dip" 
android:maxHeight="20dip"/> 

Comunque sto solo facendo una indovina dal this article.

+2

Che ne dici di API> 11 dove viene automaticamente aggiunto alla barra delle azioni? – Taranfx

16

Il trucco è far sì che la barra di avanzamento utilizzi lo stile "vecchio", nessuno stile alone. Altrimenti userà un'immagine a 9 patch come un drawable del progresso e non potrai cambiare l'altezza a meno che tu non manipoli l'immagine. Così qui è quello che ho fatto:

il progressbar:

<ProgressBar 
    android:id="@+id/my_progressbar" 
    style="@android:style/Widget.ProgressBar.Horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="10dp" 
    android:progressDrawable="@drawable/horizontal_progress_drawable_red" /> 

i progressi disegnabile (horizontal_progress_drawable_red.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"> 
     <shape> 
      <solid android:color="#808080"/> 
     </shape> 
    </item> 

    <item android:id="@android:id/secondaryProgress"> 
     <clip> 
      <shape> 
       <solid android:color="#80ff0000"/> 
      </shape> 
     </clip> 
    </item> 

    <item android:id="@android:id/progress"> 
     <clip> 
      <shape> 
       <solid android:color="#ff0000"/> 
      </shape> 
     </clip> 
    </item> 

</layer-list> 
+1

qual è l'elemento principale per il drawable del progresso dovrebbe essere? EDIT: clocksmith

16

È necessario sostituire

style=”?android:attr/progressBarStyleHorizontal” 

a

style="@android:style/Widget.ProgressBar.Horizontal" 

e layout_height funzionerà

android:layout_height="50dp" 
+0

Ha funzionato come un fascino! Grazie –

+1

Come aggiungere attributi come il colore ?! –

+0

Puoi impostare il colore dello stato di avanzamento e dello sfondo di avanzamento con "android: progressTint" e "android: progressBackgroundTint" nel tuo XML SeekBar. – Luke

1

possibile utilizzare questo codice:

mProgressBar.setScaleY(3f); 

Oppure utilizzare lo stile personalizzato

VALORI> styles.xml

<style name="tallerBarStyle" parent="@android:style/Widget.SeekBar"> 
    <item name="android:indeterminateOnly">false</item> 
    <item name="android:progressDrawable">@android:drawable/progress_horizontal</item> 
    <item name="android:indeterminateDrawable">@android:drawable/progress_horizontal</item> 
    <item name="android:minHeight">8dip</item> 
    <item name="android:maxHeight">20dip</item> 
</style> 

Poi, nel il tuo ProgressBar aggiungere:

style="@style/tallerBarStyle" 
Problemi correlati