Attualmente sto lavorando con un aggiornamento dinamico ProgressBar
. Attraverso certe percentuali, la barra progess imposta un drawable di un colore diverso. Al momento sono disponibili vari disegni a clip colorati definiti in un xml estraibile. Quello intitolato progressbar_blue_states
è dettagliata come segue:ProgressBar.setProgressDrawable non funziona per Android 2.3
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/background"
android:drawable="@drawable/progressbar_grey">
</item>
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/progressbar_blue" />
</item>
</layer-list>
Ogni volta che abbiamo bisogno di aggiornare la finestra di dialogo, che noi chiamiamo il seguente codice:
progressBar.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_blue_states));
Tuttavia, non solo questo non aggiorna il ProgressBar, ma anche elimina completamente la barra di avanzamento dove gli spazi vengono lasciati al suo posto. Tuttavia, se imposto android:progressDrawable="@drawable/progressbar_blue_states"
nell'xml ed estrai questa chiamata setProgressDrawable()
, viene caricata correttamente. Abbiamo bisogno di setProgressDrawable per aggiornare i colori secondo necessità.
Questa chiamata funziona correttamente in Android 4.0 e versioni successive, tuttavia in Android 2.3 ci sono alcuni problemi. Qualche idea?
Modifica
In questo modo abbiamo istituito il ProgressBar nel xml:
<ProgressBar android:id="@+id/progress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginBottom="2dp"
android:indeterminate="false"
android:indeterminateOnly="false"
android:progress="24"
android:max="100"
android:progressDrawable="@drawable/progressbar_red_states" />
Hai provato ad aggiornare i limiti per il 'progressbar_blue' quando lo si imposta come il progresso drawable? – Luksprog
Intendi impostare l'importo del progresso? Se è così, lo facciamo subito dopo aver impostato il drawable. – jbenowitz
Se intendi i limiti del layout, fallo nell'xml, che ho aggiunto sopra. – jbenowitz