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 :

Redimensionnement automatique d'une ImageView par xml


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 107
    Points : 56
    Points
    56
    Par défaut Redimensionnement automatique d'une ImageView par xml
    Bonsoir =)

    Je cherche un moyen d'avoir l'interface suivante, un LinearLayout alignant de gauche à droite (orientation:horizontale donc) :

    un bouton, une ImageView, un bouton.

    Je suis arrivé à faire ceci. Le truc, c'est que j'aimerai que l'interface reste valable quelque soit la taille de l'image (valable dans le sens, les deux boutons sont corectement affichés, et l'image prend le plus de place possible entre les deux).
    Et contrainte de taille, je souhaite faire ça sans passer par Java, que en passant par le .xml ^^


    J'ai testé..cherché sur le web..mais sans succès, je commence à me demander si ce n'est pas possible...

    voici mon dernier bout de code :

    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
     
    <LinearLayout 
        android:layout_width="wrap_content"
    	android:layout_height="0dp" 
    	android:orientation="horizontal"
    	android:layout_weight="8">
     
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/prev" 
                android:layout_gravity="center_vertical"/>
     
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:contentDescription="@string/image_description"
                android:src="@drawable/image1" 
            	android:adjustViewBounds="true"
            	android:scaleType="fitStart"/>
     
            <Button 
                android:layout_width="wrap_content"
    			android:layout_height="wrap_content"
    			android:text="@string/suiv"
    			android:layout_gravity="center_vertical"/>
     
        </LinearLayout>
    Et avec ça donc, mon bouton à gauche s'affiche nickel, par contre..l'image prend le reste de la partie droite et du coup le bouton droit disparait :/

    Les deux lignes dans ImageView

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    android:adjustViewBounds="true"
    android:scaleType="fitStart"
    Ont été trouvé sur les forums...mais que je les mette ou non, le problème de disparition du bouton à droite persiste.. (même en modifiant fitStart par fitXY..)

    Merci pour le coup de main =)

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Bonjour,


    Pourquoi ne pas utiliser les RelativeLayout?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    aaa j'ai oublié cette contrainte (toutes mes excuses). Il faut n'utiliser que des LinearLayout (exo devoir maison toussa).

    Bon, je l'ai réussi étant donné que la taille de l'image doit être fixé pour le moment...je cherche surtout a savoir si il existe une manière de faire plus adaptable =) (sans relative, et sans passer par Java donc).

  4. #4
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Il faut jouer avec le paramètre weight dans ce cas.

    Voici une solution:
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >
     
        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/prev" />
     
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:src="@drawable/image1" />
     
        <Button
            android:id="@+id/button2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/suiv" />
     
    </LinearLayout>
    Dans ce code, nous définissons le même espace pour chacun des 3 éléments.

    En espérant t'avoir aidé.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    Merci pour ton coup de patte =)

    Cependant, avec ton code (en jouant avec les poids..), les boutons à droite et à gauche de l'images sont écrasés par cette dernière. Ils sont visibles...mais la largeur est très petite (donc texte invisible).

  6. #6
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Bon... je ne répéterai pas que le but du forum n'est pas de fournir des solutions aux exos ^^

    En fait, le weight, il faut ne le mettre qu'à un seul élément: le ImageView. Les autres étant à 0, il auront leur taille "normale", et les élément avec weight utiliseront le reste....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    Je comprend bien Nicroman. Bon juste histoire de rassurer, une image à taille fixée suffisait pour valider l'exo..(il était déjà finis en fait) la recherche d'une interface OK sans devoir fixer la taille de l'image, c'est de l'approfondissement perso =)

    Et malgré les recherches sur le net/fofo/cours... je n'arrivais pas à trouver le moyen d'arriver à mes fins..donc au final, je cherchais surtout à savoir si c'était possible ou non sans passer par Java.

    Et il s'avère que oui grâce à ton aide =) donc merci à toi, je cale ça en résolue !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/04/2008, 21h42
  2. Exécuter une application par xml
    Par coincoin22 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 06/08/2007, 10h10
  3. Problème de redimensionnement automatique d'une listebox
    Par Kevin_18 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/07/2007, 23h33
  4. execution automatique d'une action par le serveur
    Par mael94420 dans le forum ASP
    Réponses: 3
    Dernier message: 16/06/2006, 11h18
  5. [C#] [WinForms] Redimensionnement automatique d'une ListView
    Par Phenomenium dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/02/2005, 11h43

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