2015-07-20 12 views
5

sto cercando di fare qualcosa di simile:stile Priorità non compare sulla barra di avanzamento

enter image description here

Questo è ciò che il mio codice fa:

enter image description here

I' ve questo codice nel mio file eseguibile:

progress_bar_layout.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 
      android:innerRadius="70dp" 
      android:shape="ring" 
      android:thickness="18dp"> 
     </shape> 
    </item> 

<item android:id="@android:id/progress"> 
    <shape 
     android:innerRadius="70dp" 
     android:shape="ring" 
     android:thickness="18dp"> 

     <gradient 
      android:endColor="#ff0f315f" 
      android:startColor="#ff005563" 
      android:type="sweep" /> 
    </shape> 
</item> 


<item android:id="@android:id/secondaryProgress"> 
    <shape 
     android:innerRadius="70dp" 
     android:shape="ring" 
     android:thickness="18dp"> 

     <gradient 
      android:endColor="#ff1490e4" 
      android:startColor="#ff00c0dd" 
      android:type="sweep" /> 
    </shape> 
</item> 

</layer-list> 

disposizione:

<ProgressBar 
     android:id="@+id/bar" 
     style="?android:attr/progressBarStyleHorizontal" 
     android:layout_width="180dp" 
     android:layout_height="180dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:max="100" 
     android:progress="99" 
     android:progressDrawable="@drawable/progress_bar_layout" 
     android:secondaryProgress="30" /> 

Il problema è che il mio stile di sfondo non si presenta. Ecco perché sto usando i progressi per fare il lavoro in background, ma come puoi vedere, non funziona molto bene, bcs la dimensione massima è 99, e c'è uno spazio alla fine. Mi manca del codice?

+1

Riesci a caricare l'immagine di ciò che si sta cercando di ottenere, può essere fatto facilmente in MS Paint o Photoshop –

+0

@ LX già disponibile. –

+0

Se vuoi solo sfondo nero dietro progressBar, imposta questo android: background = "# 222222" nel tuo tag farà il trucco –

risposta

3

Fondamentalmente, ho dovuto dividere progress_bar_layout.xml file disegnabile per ogni elemento, quindi, un file con le impostazioni di avanzamento e un altro per le impostazioni di sfondo. E poi, li ho aggiunti ai rispettivi elementi.

android:background="@drawable/circle_shape" 
android:progressDrawable="@drawable/circular_progress_bar" /> 

Utilizzando l'elenco dei livelli, il progetto non ha trovato l'impostazione di sfondo, quindi questo approccio ha risolto il mio problema.

circle_shape.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:innerRadius="60dp" 
    android:shape="ring" 
    android:thickness="10dp" 
    android:useLevel="false"> 

    <solid android:color="@color/blue"></solid> 

</shape> 

circular_progress_bar.xml

<?xml version="1.0" encoding="utf-8"?> 
<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="270" 
    android:toDegrees="270"> 
    <shape 
     android:innerRadius="60dp" 
     android:shape="ring" 
     android:thickness="10dp" 
     android:useLevel="true"> 

     <solid android:color="@color/blue"></solid> 

    </shape> 
</rotate> 
+0

Puoi aggiornare la tua risposta con il codice di circle_shape.xml e circular_progress_bar.xml, voglio vedere come lo hai risolto –

+0

codice @LX aggiunto. –

Problemi correlati