2010-06-08 8 views
16

Estoy buscando una manera fácil para que el usuario vea cuántas bebidas han tenido para una calculadora BAC.¿Cómo creo un ImageView en código Java, dentro de un Layout existente?

Imagen de la aplicación:

PICTURE OF THE APP

En pulse el botón, me gustaría una imagen que se añade a la pantalla, directamente debajo de la hiladora y con alineación a la izquierda. Cuando presione el botón nuevamente, quiero que se agregue otra imagen a la pantalla.

Así que si presioné el botón para agregar cerveza, aparecería un dibujante de cerveza debajo de la ruleta. Si presiono el botón de agregar cerveza nuevamente, quiero que haya DOS moldes de cervezas debajo de la ruleta, preferiblemente con los agregados desde la derecha.

(Además, tener a alcanzar su límite de ancho, envolviéndose alrededor, y comenzar de nuevo a la izquierda, pero por debajo de una línea completa, sería impresionante)

no puedo encontrar la manera de hacer esto. Asumo que agregar un ImageView en el código a un diseño relativo (porque debe estar posicionado a la derecha) sería la mejor ruta, pero si es posible en xml estaría más que feliz de poder usar eso. ¿Alguna ayuda?

Respuesta

39

En la devolución de llamada del botón, cree un objeto ImageView, configure la imagen de la botella y colóquela. Por ejemplo (estoy asumiendo los nombres de sus elementos):

ImageView iv = new ImageView(this); 
iv.setImageResource(R.drawable.beerbottle); 
RelativeLayout rl = (RelativeLayout) findViewById(R.id.RelativeLayout01); 
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.WRAP_CONTENT, 
    RelativeLayout.LayoutParams.WRAP_CONTENT); 
lp.addRule(RelativeLayout.BELOW, R.id.ButtonRecalculate); 
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
rl.addView(iv, lp); 

no he probado esto, claro está, pero hay que darle un buen comienzo. Probablemente necesite agregar otros parámetros al ImageView y posiblemente a los LayoutParams para que se vea bien, además de hacer un seguimiento de cuántas botellas se muestran, etc.

+0

¡Ah! ¡Casi! Solo la línea superior "ImageView iv = new ImageView (this);" arroja una excepción "El constructor ImageView() no está definido". –

+0

Puedo reemplazar "this" con "null" y se ejecuta, pero luego la imagen no aparece ... –

+0

Ah sí, está en la devolución de llamada por lo que carece del contexto apropiado. Reemplace "this" con "ParentActivity.this", donde ParentActivity es la clase Activity en la que está configurando el oyente. –

Cuestiones relacionadas