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

Android Discussion :

Introduction aux styles et aux thèmes : créez des interfaces graphiques Android [Tutoriel]


Sujet :

Android

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 280
    Points
    280
    Par défaut
    Bonjour,

    Je poursuit ma série et vous propose un nouveau tutoriel Android sur une méthode de création d'interface graphique avec Android. Cet article vous présente une particularité assez plaisante d'Android vis-à-vis des autres systèmes d'exploitation mobiles : la possibilité de créer des interfaces graphiques à l'aide de simples fichiers XML.

    N'hésitez pas à faire part de vos commentaires à la suite de ce message.

    Merci

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Merci pour le tutoriel.
    Très instructif, et très important cette notion de thème, surtout pour la prochaine version Android.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Points : 25
    Points
    25
    Par défaut
    Merci pour ce tutoriel.

    Une petite remarque sur la forme : dans le premier paragraphe concernant les thèmes, je crois qu'il faut lire "Traditionnellement, bien qu'un thème soit un style" et non le contraire. (si j'ai bien tout compris).

    Maintenant, concernant le fond, je n'ai toujours pas bien compris l'utilité réelle des thèmes. Comme tu le dis fort justement, appliquer une valeur par défaut à toutes les balises de l'application est un peu "hasardeux et inutile", pour ne pas dire bourrin.
    Mais l'utilisation des "indirection de style" que tu donnes ne me convainc pas vraiment. Si j'ai tout bien compris, pour appliquer le style "FillParent.Centered" à tes balises, il faut que tu déclares un attribut dans res/values/attrs.xml, puis que tu définisses un thème "Custom_2" utilisant cet attributs, et surtout que tu indiques dans chaque balise TextView l'utilisation de cet attribut !
    Dans ce cas, pourquoi ne pas définir directement l'utilisation d'un style dans chaque balise TextView ? Ca serait drolement plus simple, non ?

    En tout cas, merci encore pour cet article sur un sujet qui est effectivement assez peu documenté par Google.

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 280
    Points
    280
    Par défaut
    Salut Orabig et merci pour ton message

    Tout d'abord, tu as raison il y a bien une faute : "bien qu'un thème soit un style" et non l'inverse.

    Concernant ta remarque sur les thèmes, tu as tout à fait raison. C'est assez risqué de faire un thème qui modifie l'ensemble des propriétés d'un widget dans tout le projet. C'est néanmoins pratique dans certains cas puisque c'est par exemple utile de positionner la taille de texte de l'ensemble de l'application à un seul et unique endroit (on s'assure de la cohérence).

    Pour finir les indirections de style sont, je l'avoue, pas totalement expliquée dans mon article. Je parle ici de la possibilité de faire une indirection de style sur le style en lui même mais en réalité il est possible d'utiliser les indirections également sur les valeurs des propriétés.

    Imaginons par exemple un android:gravity="?attr/myGravity". Si myGravity est défini dans le thème alors il est facilement possible de modifier cette gravité en héritant du thème et en modifiant sa valeur. En utilisant cette méthode, on peut, en quelque sorte, regroupé l'intégralité des propriétés de style dans le thème et donc éviter la répétition de valeur similaires directement dans les layouts.

    Voilà j'espère avoir été clair ... :s Je pense que ça manquera un peu de démonstration mais je t'assure que ça n'a rien de compliqué

  5. #5
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Dans le tutorial :
    Cyril Mottier dit :

    L'attribut XML style n'appartenant pas au namespace android, il n'est pas nécessaire de le préfixer par android
    En fait c'est pas qu'il n'est pas necessaire c'est que c'est interdit de le préceder par le prefixe android simplement qu'il ne fait pas parti du namespace android , quand tu le fais,c'est une erreur simplement, le style n'appartenant pas au namespace android.

    Car la syntaxe "N'est pas necessaire" implique que le developpeur peut le faire alors que c'est pas possible.

    Juste ma contribution:

Discussions similaires

  1. Réponses: 7
    Dernier message: 05/12/2017, 08h35
  2. Réponses: 2
    Dernier message: 11/06/2014, 01h02
  3. Outil pour créer des interfaces graphiques
    Par Cyborg289 dans le forum Interfaces Graphiques en Java
    Réponses: 10
    Dernier message: 11/07/2005, 17h48

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