Come posso creare un ImageView in codice java, all'interno di un layout esistente?


Sto cercando un modo semplice per l'utente di vedere quante bevande hanno bevuto per una calcolatrice BAC.

Immagine dell'app:

IMMAGINE DELLA APP

Premendo il pulsante, vorrei che un'immagine venisse aggiunta allo schermo, direttamente sotto lo spinner e con l'allineamento a sinistra. Quando premo di nuovo il pulsante, voglio che un'altra immagine venga aggiunta allo schermo.

Quindi se premessi il pulsante Aggiungi birra, un drawable di una birra apparirebbe sotto lo spinner. Se ho premuto il pulsante Aggiungi birra ancora una volta, voglio che ci siano DUE drawable di birre sotto lo spinner, preferibilmente con loro aggiunti da destra.

(Inoltre, farli raggiungere il loro limite di larghezza, avvolgerli e ricominciare a sinistra, ma sotto una linea completa, sarebbe FANTASTICO)

Non riesco a capire come farlo. Presumo che aggiungere un ImageView nel codice a un layout relativo (perché deve essere posizionato a destra) sarebbe la strada migliore, ma se è possibile in xml sarei più che felice di usare quello. Qualche aiuto?

Author: Michael, 2010-06-08

1 answers

Nel callback clic del pulsante, creare un oggetto ImageView, impostare l'immagine del flacone e posizionarlo. Ad esempio (sto assumendo i nomi dei tuoi elementi):

ImageView imageView = new ImageView(this);
imageView.setImageResource(R.drawable.beerbottle);

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.RelativeLayout01);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.WRAP_CONTENT,
    RelativeLayout.LayoutParams.WRAP_CONTENT
);
layoutParams.addRule(RelativeLayout.BELOW, R.id.ButtonRecalculate);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

relativeLayout.addView(imageView, layoutParams);

Non l'ho testato, intendiamoci, ma dovrebbe darti un buon inizio. Probabilmente dovrai aggiungere altri parametri a ImageView e possibilmente ai LayoutParams per farlo sembrare buono, oltre a monitorare quante bottiglie vengono visualizzate, ecc.

 40
Author: Daniel Waechter, 2018-03-21 11:46:52