2011-01-24 15 views
9

Cómo crear horizontal progessBar sin XML o cómo declarar las propiedades XML sin contenido XMLView?Android: creación programática vista progressBar

Tengo el diseño en archivo .java y quiero establecer progressBar en horizontal y establecer su ancho/ubicación.

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); 

Ah, y no puede ser una ventana emergente. Necesito progressBar en la parte superior de la capa de tela táctil ..

+0

Cualquier suerte conseguir que esto funcione? – hopia

+0

@hopia sí, pero apenas lo recuerdo ... Hice algo como esto: RelativeLayout rl = new RelativeLayout (this); \t \t setContentView (rl); \t \t panel = panel nuevo (esto, contenido, W, H); \t \t panel.requestFocus(); \t \t rl.addView (panel); \t \t pb = new ProgressBar (this, null, android.R.attr.progressBarStyleHorizontal); \t \t pb.setLayoutParams (new LayoutParams (sWidth, 10)); \t \t rl.addView (pb); \t \t setContentView (rl); – yosh

Respuesta

22

En el constructor, hacer esto:

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

Puede reemplazar la hipótesis nula con un AttributeSet, normalmente se necesitaría una de AttributSets de Android de todos modos. Puede establecer su ancho/ubicación utilizando los métodos de Vista estándar.

+2

¿Puede decirme exactamente cómo agrego estos atributos? Este código es bueno, me da barra de desplazamiento horizontal, pero sigo recibiendo un error crítico (estoy sin trabajo, no puedo decir ahora qué era) cuando quiero agregar un estilo específico de style.xml como atributo xml establecido en el constructor. – yosh

1

Se puede utilizar para este LevelListDrawable de la siguiente manera:

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

stat_levels es archivo XML en dibujables contiene lo siguiente;

<?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 son dibujables de diferentes niveles.

Esto se puede utilizar para ajustar el nivel de su necesidad bases: mLevels.setLevel(mLevel);

mLevel puede ser maxLevel es decir 0, 10, 20, 40, 60, 80, 100.

Cuestiones relacionadas