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

Composants graphiques Android Discussion :

layout probleme avec images


Sujet :

Composants graphiques Android

  1. #1
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut layout probleme avec images
    bonjour,

    je souhaite avoir horizontalement trois images, l'une à gauche, l'autre au centre, et la dernière collée à droite. La première doit pouvoir être cachée, sans pour autant que les autres bougent.
    J'ai essayé de jouer avec les différents paramètres, gravity, etc., mais sans résultat.
    Vous avez une solution ?

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Oui avec un relativeLayout et en utilisant les attributs alignParentLeft, alignParentRight et centerInParent.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 52
    Par défaut
    essaie ca ...tu mets un id sur ton image et tu la visible true ou false...et le layout ki la contient ne bougera pas...car les trois layout contenant les 3 images ont le meme layout_weight
    y a surement plus simple...( moi c est comme cela que je fais...)

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal">
    	  	  <LinearLayout
    		  xmlns:android="http://schemas.android.com/apk/res/android"
    		  android:layout_width="fill_parent"
    		  android:layout_height="wrap_content"
    		  android:orientation="horizontal" android:layout_weight="1" android:gravity="center">
     
    	  		<ImageView android:id="@+id/ImageView01" 
    	  		android:layout_width="wrap_content" android:layout_height="wrap_content" 
    	  		android:src="@drawable/icon10"/>
     
    		  </LinearLayout>
    		  <LinearLayout
    		  xmlns:android="http://schemas.android.com/apk/res/android"
    		  android:layout_width="fill_parent"
    		  android:layout_height="wrap_content"
    		  android:orientation="horizontal" android:layout_weight="1" android:gravity="center">
    	  		<ImageView android:id="@+id/ImageView02" 
    	  		android:layout_width="wrap_content" android:layout_height="wrap_content" 
    	  		android:src="@drawable/icon10"/>
    		</LinearLayout>
    	  	<LinearLayout
    		  xmlns:android="http://schemas.android.com/apk/res/android"
    		  android:layout_width="fill_parent"
    		  android:layout_height="wrap_content"
    	  	android:orientation="horizontal" android:layout_weight="1" android:gravity="center">
    	  		<ImageView android:id="@+id/ImageView03"
    	  		 android:layout_width="wrap_content" android:layout_height="wrap_content"
    	  		  android:src="@drawable/icon10"/>
    		</LinearLayout>
    </LinearLayout>

  4. #4
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    a tunar with no tune, merci beaucoup pour ton aide, mais comme tu l'as dit toi même c'est peut-être un peu compliqué, je prendrai cette solution en dernier recours, mais j'aimerais bien essayer le relativeLayout d'abord.

    AndroChristophe, Ca a l'air pas mal et ça marche bien.
    Il me reste cependant une petite modification à effectuer, car je ne suis pas encore tout à fait content du rendu. Voici ma situation:
    Dans mon projet, l'image du milieu est plus grande que les deux autres à gauche et à droite. Je voudrais alors que les deux petites images soient centrées par rapport à l'image centrale (mais tout en restant en haut, comme l'image du centre).
    Y a-t-il un moyen (élégant) d'arriver à ce résultat ?

    Merci

  5. #5
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Tu peux reprendre la solution de a tunar with no tune sans pour autant attribue un Linearlayout par image il te suffit juste d'avoir un LinearLayout horizontal pour les trois images et de mettre la Visilibity de la première à INVISIBLE.

    A mon avis c'est le plus simple et le plus propre.

    Dans mon projet, l'image du milieu est plus grande que les deux autres à gauche et à droite. Je voudrais alors que les deux petites images soient centrées par rapport à l'image centrale (mais tout en restant en haut, comme l'image du centre).
    Y a-t-il un moyen (élégant) d'arriver à ce résultat ?
    Il faut jouer sur les paramètre de ta View , avec gravity et layout_gravity.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Citation Envoyé par Paul015 Voir le message
    Voici ma situation:
    Dans mon projet, l'image du milieu est plus grande que les deux autres à gauche et à droite. Je voudrais alors que les deux petites images soient centrées par rapport à l'image centrale (mais tout en restant en haut, comme l'image du centre).
    J'ai pas compris ce que tu cherches à faire... Tu voudrais que les images de gauche et droite soient centrées horizontalement ou verticalement ?

  7. #7
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Je trouve plus élégant qu'il n'y ait qu'un seul layout approprié, plutôt que d'utiliser 36 layout linear, les uns dans les autres avec des dizaines de paramètres jusqu'à obtenir le résultat souhaité.

    Si ce n'est pas possible de le faire avec un relative layout, je reprendrai cette solution. Mais n'est-il pas possible, partant de la solution avec un relative layout, d'obtenir simplement que les deux images sur les côtés soient centrées (tout en restant en haut) par rapport à l'image la plus grande, au centre ?


    edit: réponse à la question précédente
    Je voudrais qu'elles soient centrées verticalement.
    De manière horizontale, elles sont déjà bien placées grâce au relative layout (l'une à gauche, l'autre au centre, la dernière à droite).
    Mais verticalement, je voudrais que celle du milieu (la plus grande) touche le haut de l'écran, et que les deux autres (à gauche et à droite) soient centrées verticalement par rapport à l'image du milieu (ie, par exemple pour l'image de gauche, de telle sorte que la distance entre le haut de la page et le haut de l'image de gauche soit égale à la distance entre le bas de l'image de gauche et le bas de l'image du centre).
    J'espère que c'est plus clair... sinon n'hésitez pas à redemander, je ferai un dessin au pire.

  8. #8
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    bon je vous laisse découvrir mes talents de dessinateur:
    http://img7.imageshack.us/i/imagezo.png/

    Comme vous le voyez, l'image au milieu est plus grande, et les deux autres (alignées à gauche et à droite) sont centrées par rapport à celle du milieu.

  9. #9
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Euh ,

    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
    22
    23
    24
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal">
    	  	  	<ImageView android:id="@+id/ImageView01" 
    	  		android:layout_width="fill_parent"   android:layout_height="wrap_content" 
                            android:layout_weight="1"
    android:layout_gravity="center"
    	  		android:src="@drawable/icon10"/>
     
     
    	  		<ImageView android:id="@+id/ImageView02" 
    	  		android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:layout_weight="1"
    android:layout_gravity="center"
    	  		android:src="@drawable/icon10"/>
     
    	  		<ImageView android:id="@+id/ImageView03"
    	  		 android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_weight="1"
    android:layout_gravity="center"
    	  		  android:src="@drawable/icon10"/>
    </LinearLayout>
    Après tu fais ce que tu veux tes layout_gravitiy

  10. #10
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Feanorin, avec ton code, que je viens de tester, les images de gauche et de droite ne sont pas collées au bord de la fenêtre.

  11. #11
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Ok je n'avais pas bien compris si tu veux coller les images sur les bords alors utilises pour la première
    android:scaleType="fitStart"

    Pour celle du milieu
    android:scaleType="fitCenter

    pour la dernière
    android:scaleType="fitEnd"

  12. #12
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    et après je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Button)(findViewById(R.id.ImageView01))).setVisibility(View.INVISIBLE);
    pour le cacher ?
    j'ai essayé et l'erreur retournée est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    06-28 13:05:05.603: ERROR/AndroidRuntime(474): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.mon_proj/com.test.mon_proj.monActivite}: java.lang.ClassCastException: android.widget.ImageView

  13. #13
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Euh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Button)(findViewById(R.id.ImageView01)))
    C'est pas un Bouton mais une ImageView .

    Edit : Svp Pensez a utiliser la balise [CODE] cela sert à ce que votre question soit plus claire , vous le trouverez dans l'édition représentez par #.
    Merci .

  14. #14
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    (Désolé pour les balises j'essaierai d'y penser, même si la elles étaient pas vraiment nécessaires)
    Ah merde c'est vrai suis-je bête. Mais en fait je voudrais que cette image soit cliquable c'est pour ça .
    D'ailleurs on fait comment pour la rendre cliquable (y associer une fonction), cette image?

  15. #15
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Tu as deux possiblités

    Soit tu utilises ImageButton

    Soit tu utilises la fonction de View
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setOnClickListener(android.view.View.OnClickListener)
    http://developer.android.com/referen...ClickListener)

  16. #16
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Une solution possible avec les relative layout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:layout_width="fill_parent" android:layout_height="">
    	<ImageButton android:layout_height="wrap_content"
    		android:layout_alignParentLeft="true" android:layout_width="wrap_content"
    		android:layout_centerVertical="true" android:src="@drawable/icon3"></ImageButton>
    	<ImageButton android:layout_height="wrap_content"
    		android:layout_centerHorizontal="true" android:layout_width="wrap_content"
    		android:src="@drawable/icon2"></ImageButton>
    	<ImageButton android:layout_height="wrap_content"
    		android:layout_alignParentRight="true" android:layout_width="wrap_content"
    		android:layout_centerVertical="true" android:src="@drawable/icon3"></ImageButton>
     
    </RelativeLayout>

  17. #17
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Merci .

  18. #18
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Hmm encore une petite question .
    Ces images, je souhaite les inclure dans un header.
    Je fais donc un <include ...> de entete.xml dans monactivite1.xml.
    Dès lors, pour créer un gestionnaire d'événement sur le clique de l'image, je fais comment ?
    J'aimerais si possible le faire depuis ma classe ActiviteMere, qui hérite de Activity et qui a pour fille MonActivite1 (bref j'ai fait une fonction ActiviteMere pour ne pas avoir à réécrire les fonctions de l'en-tête dans chaque activité).
    Dans MonActivite1, j'ai écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);	
        setContentView(R.layout.monactivite1);
    }
    et dans ActiviteMere,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    	    LinearLayout inclure_entete = (LinearLayout)(findViewById(R.layout.entete));
    	    ((ImageView)( inclure_entete.findViewById(R.id.Bouton1)))
    	    .setOnClickListener(new View.OnClickListener() {
     
    			@Override
    			public void onClick(View v) {
    				// faire un truc
    			}
    		});
    ça compile mais ça ne run pas, findViewById(R.layout.entete) renvoie null.
    Je ne comprends pas pourquoi...

    (et une petite question annexe, pour la route: setonclicklistener se déclenche quand le bouton est pressé ou relaché?)

  19. #19
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Citation Envoyé par Paul015 Voir le message

    ça compile mais ça ne run pas, findViewById(R.layout.entete) renvoie null.
    Je ne comprends pas pourquoi...

    (et une petite question annexe, pour la route: setonclicklistener se déclenche quand le bouton est pressé ou relaché?)
    Quand le bouton est relaché il me semble.

    C'est normal que findViewById(R.layout.entete) retourne nul, vu que tu appelles super avant de faire le setContent

  20. #20
    Membre averti
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    ouai mais je ne peux pas le faire dans l'autre sens non plus, j'ai déjà essayé et il me retourne aussi une erreur...
    06-28 14:48:41.111: ERROR/AndroidRuntime(872): Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content


    Une solution?

Discussions similaires

  1. Probleme avec image dans JFrame
    Par nir63 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 18/04/2014, 15h09
  2. probleme avec images qui défilent
    Par Invité(e) dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 30/09/2008, 13h10
  3. [Struts-Layout] probleme avec la collection
    Par verdi-verda dans le forum Struts 1
    Réponses: 2
    Dernier message: 17/09/2008, 19h58
  4. [Struts-Layout] probleme avec pager et sort
    Par Kendael dans le forum Struts 1
    Réponses: 22
    Dernier message: 07/08/2007, 13h38
  5. probleme avec image reactive
    Par pit9.76 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/11/2005, 21h05

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