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 :

Choix du layout


Sujet :

Composants graphiques Android

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Par défaut Choix du layout
    Bonjour à tous,

    Je cherche à mettre des boutons de taille identique dans un layout mais qu'ils se positionnent comme il faut, en revant à la ligne si besoin, afin de convenir à toutes les tailles et ratios d'écran.

    Par exemple, B=Bouton :
    - écran horizontal :
    B B B B B
    B B B B B

    - écran classique vertical
    B B B
    B B B
    B B

    - tablette
    B B B B B B B B
    B B

    En bref, comme on pourrait avoir avec de l'html qui prend en compte les retours.

    Si j'utilise un grid layout, le nombre de lignes/colonnes ne peut pas s'adapter automatiquement. J'avais pensé au relative layout mais je n'ai pas réussi à reproduire ce que je veux.

    Avez-vous des idées ? Est-ce possible ?

  2. #2
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 960
    Par défaut
    Bonjour,
    Tu peux créer plusieurs layout, par exemple :
    /res/layout/layout.xml
    /res/layout-land/layout.xml
    /res/layout-xlarge/layout.xml
    /res/layout-xlarge-land/layout.xml (celui la je suis pas certains)

    Dans layout tu mets tes 3B, dans layout-land tu mets 5B et dans layout-xlarge tu mets 8B.

    Je pense que c'est une façon simple de mettre ce que tu veux en place.
    Peut être existe-t-il une autre solution, mais cette façon est facile à implémenter.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Par défaut
    Super merci !
    Donc il faut que je prévois 8 layouts pour chaque page :
    ldpi (low), mdpi (medium), hdpi (high) et xhdpi. Le tout en vertical ou horizontal.

    Effectivement, ça aurait été plus facile que le layout s'adapte tout seul . Dans l'ensemble, vous utilisez tous cette technique pour être compatible avec tous les devices ?

    N'y a-t-il pas de résolutions spécifiques qui risquent de ne pas afficher l'ensemble des boutons ?

  4. #4
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 960
    Par défaut
    C'est pas en rapport avec les dpi avec la size :
    small
    normal
    large
    xlarge

    Peut être que dans ton cas, tu peux le faire en code.
    Tu récupère la largeur actuel de l'écran et t'ajoute autant de boutons que tu peux.
    Ça doit être jouable, par exemple à chaque onCreate ou onConfigurationChanged je sais pas, ça peut recréer l'affichage quand tu changes l'orientation.

    Ce qui serait chouette c'est de faire un Distribute Weights Evenly.
    Ça doit être jouable.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Par défaut
    Merci. J'ai trouvé les bonnes pratiques ici : http://developer.android.com/guide/p...s_support.html

    Tu me conseilles un TableLayout pour faire cette présentation ? Le problème que j'avais était qu'avec un table layout a 2 colonnes par exemple, le bouton, même en wrap_content ou avec une taille fixe (en dip), prenait toute la largeur de la colonne.

  6. #6
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 960
    Par défaut
    Je ne connais pas TableLayout, moi si j'avais 10 boutons à mettre je les mettrais dans un LinearLayout horizontal et ces LinearLayouts seraient dans un LinearLayout vertical.

    En fait je me suis jamais posé vraiment la question, j'ai jamais affiché des objets à la suite.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Par défaut
    L'idée aussi c'est qu'ils soient centrés dans le tableau, afin de prendre toute la largeur de l'écran. L'espace entre les boutons dépend donc de la largeur de l'écran (mais effectivement si je fais des layouts spécifiques, je n'ai plus ce problème).

  8. #8
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 960
    Par défaut
    Ouais un LinearLayout avec :
    android:layout_width="fill_parent"
    android:gravity="center_horizontal"

    Ça centre bien tout ce qu'il y a à l'intérieur.

    Maintenant t'as plus qu'a le coder !

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Par défaut
    Oui oui, mais j'avais le problème avec TableLayout

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Par défaut
    Pour info, ils conseillent de ne pas abuser de l'imbrication des LinearLayout pour des soucis de performance : http://android-developers.blogspot.c...-tricks-1.html

  11. #11
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 960
    Par défaut
    Ok, ben au lieu d'utiliser plusieurs LinearLayout utilise un seul RelativeLayout, mais ça va être plus compliqué.

    Cela dit, je voudrais bien pouvoir mesurer la différence de ressource utilisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The layout pass can be especially expensive when you nest several LinearLayout that use the weight parameter, which requires the child to be measured twice.
    Si tu n'utilises pas de weight ça doit aller...

    Si tu dis à ton LinearLayout qu'il à width="fill_parent" et height="50dip", ça ne doit pas être trop gourmand.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Par défaut
    Aucune idée . Bon je vais essayer tout ça ce soir, merci.

  13. #13
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 960
    Par défaut
    Après tu peux tester avec layoutopt.bat qui est dans le dossier tools du SDK, normalement t'as du l'ajouter dans le PATH de Windows (si t'es sous Windows).

    Donc avec ton invite de commande tu va dans ton dossier layout et tu tapes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    layoutopt tonlayout.xml
    Si la layout peut être optimisé il te le dit :
    http://developer.android.com/guide/d...html#layoutopt

    Apparemment jusqu’à 10 layouts imbriqué ça pose pas de problème :
    This layout has too many nested layouts: 13 levels, it should have <= 10!

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Par défaut
    Effectivement, merci pour l'aide ! Je vais tester tout ça

Discussions similaires

  1. Choix de Layout
    Par czjohnso dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 29/12/2011, 16h23
  2. Meilleur choix de layout
    Par robert_trudel dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 15/04/2009, 09h10
  3. Choix des Layout
    Par bergoliv dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 02/11/2007, 21h58
  4. Choix du layout
    Par delma dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 27/09/2006, 01h29
  5. Choix d'un ORB
    Par Anonymous dans le forum CORBA
    Réponses: 4
    Dernier message: 06/05/2002, 12h15

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