2010-06-08 3 views
16

Je cherche un moyen facile pour l'utilisateur de voir combien de verres ils ont eu pour une calculatrice BAC.Comment créer un ImageView en code java, dans une mise en page existante?

Image de l'application:

PICTURE OF THE APP

Sur presse bouton, je voudrais une image à ajouter à l'écran, directement sous la fileuse et avec alignement à gauche. Lorsque j'appuie à nouveau sur le bouton, je veux ajouter une autre image à l'écran. Donc, si j'appuyais sur le bouton ajouter de la bière, un dessin d'une bière apparaîtrait en dessous de la centrifugeuse. Si j'appuie de nouveau sur le bouton ajouter de la bière, je veux qu'il y ait deux DEUX tiroirs de bières sous le fileur, de préférence avec ceux-ci étant ajoutés de la droite.

(également, les ayant atteint leur limite de largeur, enroulant autour, et de recommencer à gauche, mais au-dessous d'une ligne complète, serait génial)

Je ne peux pas comprendre comment faire cela. Je suppose que l'ajout d'un ImageView dans le code à une mise en page relative (parce qu'il doit être positionné vers la droite) serait le meilleur itinéraire, mais si c'est possible en XML, je serais plus qu'heureux de l'utiliser. De l'aide?

Répondre

39

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 que les noms de vos éléments):

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

Je ne l'ai pas testé, vous l'esprit, mais il devrait vous donner un bon départ. Vous aurez probablement besoin d'ajouter d'autres paramètres à ImageView et éventuellement à LayoutParams pour le rendre bien, plus suivi combien de bouteilles sont affichées, etc.

+0

Ah! Presque! Seule la ligne supérieure "ImageView iv = new ImageView (this);" renvoie une exception "Le constructeur ImageView() est indéfini." –

+0

Je peux remplacer "ceci" par "null" et il s'exécute mais alors l'image n'apparaît pas ... –

+0

Ah oui, c'est dans le rappel donc il manque le contexte approprié. Remplacez "this" par "ParentActivity.this", où ParentActivity est la classe Activity dans laquelle vous définissez l'écouteur. –

Questions connexes