J'ai passé quelque temps hier luttant avec des mises en page Android (... ou mieux des mises en page personnalisées). Pour des raisons générales, il s'agit des mises en page out of the box que les offres androïdes sont plus que suffisantes. Mais quand il s'agit de cas d'utilisation plus complexes (prenons l'exemple du carrousel avec chevauchement d'images qui sont posées sur un chemin elliptique), j'ai rapidement réalisé la limitation et la complexité des API Android. Ce fut mon approche:Mise en page personnalisée Android
L'utilisation de la mise en page de la boîte est pas une option (à de nombreux problèmes difficiles à gérer à gérer), mais le besoin d'objets graphiques qui peuvent être ajoutés à un récipient (disons ImageView par exemple) est nécessaire pour effectuer facilement la traduction, les rotations, etc ... grâce à une animation intégrée. AbsoluteLayout semble être la disposition la plus raisonnable disponible à cet effet. Il permet d'ajouter des objets de vue dérivés et d'écrire votre propre algorithme pour les positionner. Mais ... c'est obsolète. C'est une honte! Qui veut utiliser des apis obsolètes? La prochaine chose la plus raisonnable à faire est d'écrire votre propre mise en page sous-classer le ViewGroup mystique .. et voici où tout se désintègre (au moins, il a fait pour moi). C'est compliqué, trompeur et difficile de le faire autant que d'écrire sa propre mise en page personnalisée pour le swing (je l'ai fait il y a des années, et je me souviens d'être plus simple). Ensuite, (sous l'effet du désespoir) sous-classer une vue, remplacer la méthode onDraw et dessiner directement sur un canevas semble la seule solution simple (bien que cela me rappelle les jours de java2D ... de longues heures passées à atteindre le 1% de votre projet), mais vous abandonnez les API d'animation intégrées que vous souhaitez appliquer aux graphiques dessinés sur le canevas.
La conclusion est que, à moins d'avoir manqué quelque chose, l'architecture Android actuelle est un peu loin du paradigme de la programmation offerte par d'autres technologies de l'interface utilisateur telles que le flash ou JavaFX (je peux facilement mettre en œuvre le carrousel décrit ci-dessus en javafx et flash). La raison en est que, dans javafx par exemple, l'objet Scene (comparable au concept View d'android) offre par défaut une disposition absolue. Vous pouvez ensuite appliquer d'autres mises en page de la boîte si vous le souhaitez. Mais pour les scénarios où une mise en page personnalisée est nécessaire, vous n'avez rien à faire.
Je suis un peu surpris que cette option n'est pas disponible dans Android, après tout, c'est un besoin assez commun qui est adressé par d'autres technologies ui. J'aime toujours penser qu'il y a une 5ème option dans android que je n'ai pas trouvée. Y at-il un expert qui pourrait fournir des informations sur le sujet?
Merci.
Bonne question! Heres ma question à peu près la même: http://stackoverflow.com/questions/4953351/android-how-to-draw-a-letter-at-a-specific-point ... Pourquoi ont tous ces points de vue et animations si vous ne pouvez pas les utiliser? – Mark