IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Comment placer une image avec le code Java ?


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 89
    Points : 86
    Points
    86
    Par défaut Comment placer une image avec le code Java ?
    Bonjour,

    j'aimerai pouvoir déplacer une image dans une application, avec le code java (et non avec le xml).

    J'ai trouvé ceci sur le sujet, mais je n'ai pas réussi à l'adapter à mon cas :

    j'ai essayé ça, mais ça ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ImageView _test = new ImageView(this);
    _test.setImageResource(R.drawable.image1);
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
    lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    addContentView(_test,lp);
    (ça ne marche pas, c-est-à-dire que l'image s'affiche, oui, mais au centre de l'écran et non sur la droite =/)

    Merci d'avance

  2. #2
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 820
    Points : 18 740
    Points
    18 740
    Par défaut
    Bonjour,

    Peut être que si tu faisais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _test.setLayoutParams(lp);
    Après je ne connais pas addContentView.

    T'es certains que t’envoie ton TextView dans une RelativeLayout ?
    Moi j'aurais récupéré un RelativeLayout qui est dans un fichier de layout en .xml et j'aurais ajouté le TextView.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 89
    Points : 86
    Points
    86
    Par défaut
    Bonjour,
    T'es certains que t’envoie ton TextView dans une RelativeLayout ?
    -> je suis pas certain, mais vu que l'image s'affiche, je pense que oui :p.

    si j'ai bien compris, la fonction 'addContentView' ajoute à la vue en cours de l'activité.
    Cependant, j'ai l'impression que le paramètre ALIGN_PARENT_RIGHT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    n'est pas pris en compte...

    Ajouter ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _test.setLayoutParams(lp);
    ne change pas la position de l'image non plus. Je pense que le problème vient du addRule, mais je ne sais pas comment faire différemment..

    Merci de vos réponses.

  4. #4
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 820
    Points : 18 740
    Points
    18 740
    Par défaut
    Tu devrais créer une RelativeLayout.
    Mettre ton TextView dedans.
    Et envoyé la RelativeLayout avec addContentView.

    C'est celle d'Activity ?
    http://developer.android.com/referen...ayoutParams%29

    A mon avis ton TextView il n'est pas dans une RelativeLayout.
    Enfin je ne sais pas j'ai pas vu le fichier de layout de ton Activity.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 89
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    Voila le code 'brut'
    Le contexte : on rentre dans le code suivant lorsqu'on clique sur un bouton du menu (intitulé "Show/Hide reference picture"):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    else if (item.getTitle().equals("Show/Hide reference picture"))
            {
            	_isTestToDisplay = !_isTestToDisplay;
            	if (_isTestToDisplay) // picture to show
            	{
            		changeReferencePitcure();
            		_test.setAlpha(0.4f);
            		if (_isFirst) // first time a picture is displayed
            		{
            			RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); // creation of its parameters
            			lp.addRule(RelativeLayout.ALIGN_RIGHT);
            			_test.setLayoutParams(lp);
            			addContentView(_test,lp); // add the picture to the view
            			_isFirst = false;
            		}
            	}
            	else // picture to hide
            	{
            		_test.setImageResource(0);
            	}
            }
    (j'ai testé ALIGN_RIGHT au lieu de ALIGN_PARENT_RIGHT sans succès :p).
    L'attribut _isFirst est un boolean pour savoir si c'est la première fois que l'on crée l'image (donc on créé un seul RelativeLayout.LayoutParams).
    L'attibut _isTestToDisplay est un boolean pour savoir s'il faut afficher ou supprimer l'image (c-est-à-dire ici faire setImageResource(0).
    La méthode changeReferencePicture() modifie uniquement l'imageResource.
    (de plus, je veux faire apparaître l'image en transparence, donc je mets un alpha à 0.4f).

    Voilà le code brut avec qqes petites explications si ça peut t'aider à comprendre mieux mon problème .

    C'est celle d'Activity ?
    Ouep, le code au-dessus provient de mon activité principale.

    Merci d'avance =)

  6. #6
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 820
    Points : 18 740
    Points
    18 740
    Par défaut
    _test c'est une ImageView, pas une RelativeLayout.
    Essaie d'envoyer un RelativeLayout comme je te l'ai dis.

    Sinon il y a encore plus simple.

    Tu créer un layout avec une RelativeLayout et une ImageView dedans.
    Ensuite d'inflate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    View child = getLayoutInflater().inflate(R.layout.child);
    ImageView imageView = (ImageView) child.findViewById(R.id.imageView);
    Et là t'add child.

Discussions similaires

  1. comment placer une image et la faire bouger
    Par walido dans le forum MFC
    Réponses: 3
    Dernier message: 30/03/2007, 14h18
  2. Réponses: 4
    Dernier message: 26/09/2005, 14h27
  3. [XSL] Placer une image avec la feuille de style
    Par Marcopilon dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/06/2005, 00h30
  4. [ImageMagick] Comment générer une image d'un code à entrer ?
    Par MiJack dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 16/01/2005, 21h29
  5. PL/SQL - Comment afficher une image avec HTP ?
    Par patmaba dans le forum PL/SQL
    Réponses: 2
    Dernier message: 08/07/2004, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo