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 :

Réduire la taille d'une ImageView dans un layout en fonction d'un TextView


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Par défaut Réduire la taille d'une ImageView dans un layout en fonction d'un TextView
    Bonjour,

    J'ai un LinearLayout de forme rectangulaire qui contient une ImageView carrée à gauche et un TextView de 2 lignes maximum à droite.

    Je voudrais que l'image ne soit pas plus haute que le texte afin d'éviter d'avoir un espace blanc inutile sous le texte dans le layout.

    Voici un schéma expliquant ce que je veux :


    Voici le code correspondant. Les Layouts sont créés programmativement car ils sont dynamiques :

    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
    38
    39
    40
    41
    public class MarkerView extends LinearLayout {
     
        private TextView description; // La description s'affichant sur le marqueur
     
        /**
         * Constructeur créant la vue associée au marqueur passé en paramètre
         * 
         * @param context
         * @param marker
         */
        public MarkerView(Context context, Marker marker) {
            super(context);
            this.marker = marker;
     
            description.setText("Mon texte de 2 lignes");
            description.setMaxLines(2);
            description.setTextColor(Color.BLACK);
     
            // Image
            ImageView img = new ImageView(this.getContext());
            img.setImageResource(R.drawable.image);
     
                    // Essais pour récupérer la taille du texte et modifier la taille max de l'image en conséquence, mais description.getHeight() renvoie toujours 0.
            //addView(description);
            //int h= description.getHeight();  // Renvoie 0
            //System.out.println(h);
            //this.removeAllViews();
            //img.setMaxHeight(h);
     
                    // Background du Layout
            setBackgroundResource(R.drawable.fond);
                    // On ajoute l'image
            addView(img);
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                    LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
            params.gravity = Gravity.CENTER;
            params.leftMargin = 5;
                    // On ajoute le texte
            addView(description, params);
        }
    }
    Savez-vous comment je pourrais faire pour que mon image ait une taille maximum égale à la taille du texte quel que soit la résolution de l'appareil qui exécute l'appli ?
    J'ai essayé de récupérer la hauteur du textView mais elle renvoie toujours 0.

    Merci d'avance, n'hésitez pas si vous voulez plus de précisions.

    Aenur56
    Images attachées Images attachées  

  2. #2
    Membre éclairé
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2012
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2012
    Messages : 72
    Par défaut L'image est carré?
    Si l'image est carrée, tu récupère la hauteur du textView et tu définit les dimensions de l'image en fonction de la hauteur du TextView

    Sinon tu peux essayer ca (je suis pas sur) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content>
    </LinearLayout>
    Je suis pas sur du tout mais tu peux essayer

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Par défaut
    C'est déjà comme ça et ça ne fonctionne pas :/
    De plus, je n'utilise pas de fichier XML pour ce Layout.

  4. #4
    Membre éclairé
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2012
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2012
    Messages : 72
    Par défaut Là je pêche...
    Essaye de faire de la proportionnelle pour redimensionner l'image en fonction de la hauteur du TextView (Quoique ca doit être faisable même si je pense qu'une fonctionnalité qui m'est inconnue du SDK doit bien faire quelque chose comme ça)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Par défaut
    J'aimerais bien, mais pour récupérer la hauteur d'un textView, il faut que le Layout qui le contient ait été créé. Du coup, il faut limite que j'affiche le Layout avant d'adapter la taille de l'image, ce qui n'est pas vraiment possible :/

  6. #6
    Membre éclairé
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2012
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2012
    Messages : 72
    Par défaut Ca pourrait être une solution
    Ca pourrait être une solution : le créer et le modifier juste après..
    Ayant l'habitude d'utiliser des fichiers xml, je trouve ca plus simple mais le choix te reviens

Discussions similaires

  1. Réduire la taille d'une Lite déroulante, mais ...
    Par Joe Le Mort dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/05/2006, 15h17
  2. [C#] Modifier la taille d'une colonne dans un datagrid
    Par Sylk dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/01/2006, 18h27
  3. [SWT][debutant]taille d'une icone dans un TreeItem
    Par maxvador dans le forum SWT/JFace
    Réponses: 5
    Dernier message: 28/08/2005, 17h56
  4. [Oracle 8i] réduire la taille d'une base de test
    Par delphim dans le forum Oracle
    Réponses: 2
    Dernier message: 04/07/2005, 11h59
  5. Récupérer la taille d'une image dans un fichier (GIF/JPEG)
    Par SheikYerbouti dans le forum Multimédia
    Réponses: 4
    Dernier message: 12/05/2005, 14h17

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