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 :

Widget perso : Une grille 2D avec 3 Scrollviews


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 56
    Points : 34
    Points
    34
    Par défaut Widget perso : Une grille 2D avec 3 Scrollviews
    Bonjour tous,

    Voici mon problème : Je souhaite créer un widget, qui ressemblera à un tableau à deux dimensions. En x et y.

    Pour mieux comprendre le comportement que j'ai en tête, j'ai fait un petit schéma :
    http://i52.tinypic.com/2q2mj34.jpg

    Pourquoi est-ce que je souhaite utiliser 3 scrollviews au lieu d'un TableLayout ? Parce que je souhaite que ce tableau soit redimensionnable. Et donc, les trois scrollviews devraient être synchro. Quand tu scroll l'axe des x (ScrollView 1 vertical), le Canvas scroll en X. Même comportement quand on scroll en y avec la ScrollView2.

    Comment devrai-je m'y prendre pour construire ce widget? J'ai choisi de créer une classe héritant de RelativeLayout. Je souhaite que les données qui seront affichées par le widget puissent être fréquemment rafraîchies. Ces données seront :
    - Les étiquettes en X
    - Les étiquettes en Y
    - et les pistes (les petits machins en couleur sur le schéma)

    Devrais-je utiliser un Adapter? Ou bien ?

    Merci pour vos contributions même les plus petites, si vous avez besoin d'éclaircissement, faites-moi signe.

    Regards,
    C.O.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 56
    Points : 34
    Points
    34
    Par défaut
    N'hésitez vraiment pas à me poser des questions si vous n'avez pas saisi ce que je souhaite faire ! Je suis à fond ce topic.

  3. #3
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Difficile de pouvoir te répondre si on ne sait pas exactement le but de ce canvas .

    Après vu l'image en lien , tu peux directement passer par un tableau en deux dimensions en gérant l'affichage directement dans le onDraw(Canvas canvas) de ta View.

    Si tu veux utiliser un Adapter tu peux t'inspirer de la GridView qui pourrait à peu près correspondre à ce que tu souhaites réaliser.

    Autres possibilité tu passes par une image de base ou tu dessines dessus , donc tu as ta grille représentée par ton image_grille.Tu dessines après tes éléments sur cette image dans le onDraw.

    Personnellement je pense que la troisième possibilité est la plus coûteuse en mémoire mais la plus évidente à implémenter de plus tu auras un meilleur rendu en fond dû au fait que ton image en background .

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 56
    Points : 34
    Points
    34
    Par défaut
    Merci pour ta réponse Feanorin,

    Après vu l'image en lien , tu peux directement passer par un tableau en deux dimensions en gérant l'affichage directement dans le onDraw(Canvas canvas) de ta View.
    Peux-tu m'en dire plus ? Parce que selon moi lorsque tu resize ce genre de tableau, est-ce que tu peux toujours scroller les lignes et colonnes ? (en gardant les intitulés de colonnes toujours visibles)

    Pour être plus clair, ce widget servirait par exemple à afficher le planning des réservations des salles d'une entreprise. Donc en X les créneaux de la journée par demi-heure. En Y les différentes salles. Et sur le Canvas du centre, les différentes réservations. (sous forme de piste de couleur)

    Est-ce plus clair ? Donc, typiquement je veux que ce widget soit redimensionnable et qu'on voit toujours les intitulés des lignes et colonnes.

    Chaque réservation s'affiche sur les différentes cases (Parce que tu peux réserver que par demi heures) du Canvas.

    Alors, si tu pouvais m'expliquer un peu ta technique!

    Merci beaucoup
    C.O.

  5. #5
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Dans ce cas là alors je maintiens que le fait de dessiner sur une image correspondrait le mieux a se que tu voudrais faire.

    Dessine une image comportant ta grille, relève les positions des endroits sélectionnables , fais le lien dans ta CustomView (qui contient ton image) entre les éléments sélectionnés et sélectionnables .

    Délimite le facteur de zoom pour que ton image reste toujours lisible.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 56
    Points : 34
    Points
    34
    Par défaut
    Merci Feanorin !

    Je progresse un peu sur l'idée. Ok pour la grille, je vais faire comme ça.

    Pour les axes, je voulais mettre des LinearLayout dans les scrollviews. Dans ces linear layout, je vais mettre autant de textviews qu'il n'y a de lignes et de colonnes, et les mettre à la même taille. Ca se fait à ton avis ?

    Pour synchroniser les 3 scrollviews lorsqu'on les scrolle. J'utilise un GestureDetector, et je repercute les déplacements en X et en Y sur les autres scrollviews ? Ca se fait ça aussi ?

    Merci et bonne matinée !

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/06/2011, 20h08
  2. Algo de propagation dans une grille avec obstacle
    Par grodwar dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 03/01/2007, 17h47
  3. Réponses: 1
    Dernier message: 03/05/2006, 10h49
  4. Réponses: 16
    Dernier message: 10/11/2005, 22h51
  5. Créer une grille avec centage
    Par lil_jam63 dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 16/08/2004, 16h21

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