web-dev-qa-db-fra.com

Comment créer une ImageView dans Java, dans une mise en page existante?

Je cherche un moyen simple pour l'utilisateur de voir combien de boissons il a bu pour une calculatrice BAC.

Image de l'application:

PICTURE OF THE APP

En appuyant sur le bouton, je voudrais qu'une image soit ajoutée à l'écran, directement sous le spinner et avec l'alignement à gauche. Lorsque j'appuie à nouveau sur le bouton, je souhaite qu'une autre image soit ajoutée à l'écran.

Donc, si j'appuyais sur le bouton Ajouter de la bière, une étirable d'une bière apparaîtrait sous le filateur. Si j'appuie à nouveau sur le bouton Ajouter de la bière, je veux qu'il y ait DEUX tiroirs de bières sous le filateur, de préférence avec eux ajoutés par la droite.

(Aussi, les faire atteindre leur limite de largeur, s'enrouler et recommencer à gauche, mais en dessous d'une ligne complète, serait IMPRESSIONNANT)

Je ne sais pas comment faire ça. Je suppose que l'ajout d'une ImageView dans le code à une disposition relative (car elle doit être positionnée à droite) serait le meilleur itinéraire, mais si c'est possible en XML, je serais plus qu'heureux de l'utiliser. De l'aide?

17
Dan T

Dans le rappel de clic du bouton, créez un objet ImageView, définissez l'image de la bouteille et positionnez-la. Par exemple (je suppose les noms de vos éléments):

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

Je ne l'ai pas testé, ça va, mais ça devrait vous donner un bon départ. Vous devrez probablement ajouter d'autres paramètres à l'ImageView et éventuellement aux LayoutParams pour lui donner une belle apparence, ainsi que le suivi du nombre de bouteilles affichées, etc.

47
Daniel Waechter