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 :

Définir la taille d'un bouton


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Par défaut Définir la taille d'un bouton
    Bonjour,

    Je n'arrive pas a définir la taille d'un bouton dans mon application.
    1er solution utiliser setWidth, l'image s'affiche bien mais le bouton a toujours la même taille.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    bouton = new Button(this);	
    bouton.setBackgroundResource(android.R.drawable.ic_menu_camera);
    bouton.setWidth(10); 
    row.addView(bouton);
    table.addView(row, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    2eme solutions utiliser setMaxWidth, l'image s'affiche bien mais le bouton a toujours la même taille (comme la solution1).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    bouton = new Button(this);	
    bouton.setBackgroundResource(android.R.drawable.ic_menu_camera);
    bouton.setMaxWidth(10); 
    row.addView(bouton);
    table.addView(row, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    3eme solutions utiliser un LinearLayout, l'image ne s'affiche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    line=new LinearLayout(this);
    bouton = new Button(this);
    bouton.setBackgroundResource(android.R.drawable.ic_menu_camera);
     
    line.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    line.addView(bouton);
     
    row.addView(line);
    table.addView(row, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    Je suis a cour d'idée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TableLayout table;
    LinearLayout line;
    Button bouton;

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Pourquoi n'utilises-tu pas simplement un fichier xml pour créer ton layout ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Par défaut
    Les lignes (tablerow) de mon tablelayout sont le résultat d'une requête donc je ne peux pas connaitre le nombre de ligne que je vais récupérer.

    Solution 4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int width = metrics.widthPixels;
    bouton .setWidth((width*10)/100);

  4. #4
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Il faut utiliser le layout TableRow à l'interieur d'un TableLayout.... C'est un LinearLayout fait explicitement pour être mis à l'intérieur d'un TableLayout...

    Les lignes (tablerow) de mon tablelayout sont le résultat d'une requête donc je ne peux pas connaitre le nombre de ligne que je vais récupérer.
    Et alors ? Une ListView y arrive bien, pas de raison que cela ne soit pas possible....
    Non franchement, il *faut* passer par le XML, c'est plus simple pour gérer tous les paramètres (y compris de layout), mais surtout ca permet de prévisualiser directement dans l'éditeur d'interface, et de gérer correctement les thèmes

    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
     
    TableLayout table = (TableLayout)findViewById(...);
    LayoutInflater inflater = getLayoutInflater();
     
    Cursor cursor = ....;
    boolean hasMore = cursor.moveToFirst();
    while (hasMore) {
       View base = inflater.inflate(R.layout.row_layout,null);
       if (baseRow instanceof TableRow) {
           // Il faut utiliser TableRow dans un TableLayout....
           TableRow row = (TableRow) base;
           ....
           row.findViewById(...).setText(...);
           ....
           table.addView(row);
       } else
           throw new IllegalStateException("Invalid view used for table rows: "+base.getClass());
       hasMore = cursor.moveToNext();
    }

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Par défaut
    J'ai utilisé la solution 4 mais je vais essayer de passer par le xml.

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

Discussions similaires

  1. Définir taille d'un bouton
    Par totot dans le forum Interfaces Graphiques en Java
    Réponses: 0
    Dernier message: 02/05/2015, 12h24
  2. Définir une taille fixe pour mes boutons dans un GridLayout
    Par Morby dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 04/01/2012, 03h30
  3. [CSS]Définir une taille pour chaque police
    Par Davboc dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 27/12/2005, 18h32
  4. taille d'un bouton
    Par capblans dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 10/11/2005, 11h56
  5. [Impression] Définir la taille du papier
    Par HPJ dans le forum Windows
    Réponses: 7
    Dernier message: 06/09/2004, 15h43

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