2011-01-24 2 views
9

Come creare una progess orizzontale orizzontale senza XML o come dichiarare le proprietà XML senza XML contentView?Android - creazione di una visualizzazione progress progressbarBar

Ho il layout nel file .java e voglio impostare progressBar in orizzontale e impostare la sua larghezza/posizione.

RelativeLayout fv = new RelativeLayout(this); 
panel = new Panel(this); 
fv.addView(panel); 
ProgressBar pb = new ProgressBar(this); 
//pb.? - progress bar parameters 
fv.addView(pb); 
setContentView(fv); 

Oh, e non può essere una finestra pop-up. Ho bisogno ProgressBar sulla parte superiore dello strato di tela touch-enabled ..

+0

Hai avuto fortuna ottenere questo lavoro? – hopia

+0

@hopia sì, ma a malapena lo ricordo .. Ha qualcosa del genere: RelativeLayout rl = new RelativeLayout (this); \t \t setContentView (rl); \t \t panel = new Panel (questo, contenuto, W, H); \t \t panel.requestFocus(); \t \t rl.addView (pannello); \t \t pb = new ProgressBar (questo, null, android.R.attr.progressBarStyleHorizontal); \t \t pb.setLayoutParams (new LayoutParams (sWidth, 10)); \t \t rl.addView (pb); \t \t setContentView (rl); – yosh

risposta

22

Nel costruttore, fare questo:

ProgressBar pb = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal); 

è possibile sostituire il nulla con un'AttributeSet, in genere si avrebbe bisogno di uno dei AttributSets di Android in ogni caso. È quindi possibile impostare la sua larghezza/posizione utilizzando i metodi di visualizzazione standard.

+2

Puoi dirmi in che modo esattamente aggiungo questi attributi? Questo codice è buono, mi dà una barra di scorrimento orizzontale ma continuo a ricevere errori critici (sono senza lavoro, non posso dire ora di cosa si trattava) quando voglio aggiungere uno stile specifico da style.xml come attributo xml impostato nel costruttore. – yosh

1

È possibile utilizzare LevelListDrawable per questo come segue:

LevelListDrawable mLevels; 
mLevels = (LevelListDrawable)getContext().getResources().getDrawable(R.drawable.stat_levels); 

stat_levels è file XML in drawable contiene cosa seguente;

<?xml version="1.0" encoding="utf-8"?> 
<level-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:maxLevel="0" android:drawable="@drawable/stat_0" /> 
<item android:maxLevel="10" android:drawable="@drawable/stat_10" /> 
<item android:maxLevel="20" android:drawable="@:drawable/stat_20" /> 
<item android:maxLevel="40" android:drawable="@drawable/stat_40" /> 
<item android:maxLevel="60" android:drawable="@drawable/stat_60" /> 
<item android:maxLevel="80" android:drawable="@drawable/stat_80" /> 
<item android:maxLevel="100" android:drawable="@:drawable/stat_100" /> 
</level-list> 

stat_0 - stat_100 sono drawable di diversi livelli.

questo può essere usato per impostare il livello delle vostre basi bisogno: mLevels.setLevel(mLevel);

mLevel può essere maxLevel cioè 0, 10, 20, 40, 60, 80, 100.