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 :

Redimensionnement graphique


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Par défaut Redimensionnement graphique
    Bonjour, je développe une nouvelle application Android et je rencontre un soucis intéressant...

    Mon application affiche un diagramme (des "lignes" horizontales, pour faire simple).
    Je vais implémenter le multi touch pour permettre à l'utilisateur de zommer/dezommer (Pinch zoom que ca s'appellerait à priori).
    Cela va donc élargir ou diminuer la "longueur" des lignes.


    Je lis actuellement un super tuto (en anglais) : http://www.zdnet.com/blog/burnette/h...android-2/1747

    Mon soucis est que ce dernier se base sur un ImageView et une matrice pour redimensionner.

    Sachant que mes "lignes" vont représenter des taches et afficher aussi quelques données.

    Voici une représentation sous PAINT (oui on découvre l'artiste) d'une ligne :

    Il faut imaginer 2 echelles : sur l'axe Y, le nom de la personne affectée à ces taches, sur l'axe X... c'est une échelle de temps.

    Vous l'aurez remarqué, j'ai mis deux taches sur un même ligne... La première tache devrait "aussi" comporter une date. Bien entendu, le tout n'est pas à l'échelle ici (mais le sera sur l'appli). Ce qui m’intéresse c'est de "dessiner" les grand rectangles qui représentent chacun une tache. La longueur du rectangle est proportionnelle à la durée de la tache. Puis, mettre une sorte de titre coincé en haut à gauche du rectangle représentant la tache, et comme vous le voyez dans la seconde tache, des petits rectangles (ils ont un certaine signification). fixés en bas et dont leur place X doit être "précise".

    j'ai pensé utiliser des layouts pour dessiner cela... Mais au niveau du redimensionnement sur des layouts... je n'ai aucune idée de comment faire.

    Et vous, des solutions/idées à me proposer ?

    note : peut etre faut-il dessiner grace à un "canevas" mais je connais pas du tout.
    Note 2: je redimensionne en largeur. Pas en hauteur (enfin pas prévu pr l'instant).
    Note 3: lorsque je redimensionne, l'échelle de temps sera elle aussi mise à jour pour passer d'une représentation de "jours" à "semaines" ou "mois" voir années. Mais, j'en fais mon affaire j'espère.

  2. #2
    Membre actif
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Par défaut
    Bonjour,
    personne n'a d'idées ou de solutions à me proposer pour m'aider à faire avancer le problème ?

    J'explore diverses pistes.
    J'ai pendant un temps pensé à finalement utiliser une Imageview et une matrice avec une image générée...en SVG. malheureusement ImageView ne supporte pas le SVG.

    Je me suis aussi lancé dans un "trip" : Et un Webview ? je génère le diagramme en html (avec du css pour mettre en forme).
    le soucis c'est au niveau du redimensionnement, vais-je pouvoir détecter la gestuelle et regenerer le code html "à la volée". Attention, je dois aussi refaire l'échelle des temps suivant l'échelle courante.

    Dernière idée, utiliser une seekbar pour m'occuper du redimensionnement... en appellant une methode qui regenere tous les elements graphiques...Je vais voir.

  3. #3
    Expert confirmé

    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
    Par défaut
    Bonjour,

    Ton idée via le Canvas reste à mon avis la solution la plus simple à mettre en place...

    Après tu peux essayer de te créer une View personnaliser, tu pourras comme cela gérer le zoom sur celle ci via les méthodes, pour cela il faudra peut être utiliser la méthode http://developer.android.com/referen...sure(int, int) et en plus une scroll ...pour ce déplacer dans le zoom.


    J'ai pendant un temps pensé à finalement utiliser une Imageview et une matrice avec une image générée...en SVG. malheureusement ImageView ne supporte pas le SVG.

    Il y a un projet la dessus.
    https://launchpad.net/libsvg-android


    le soucis c'est au niveau du redimensionnement, vais-je pouvoir détecter la gestuelle et regenerer le code html "à la volée". Attention, je dois aussi refaire l'échelle des temps suivant l'échelle courante.
    C'est une idée, cela s'annonce à mon avis compliqué pour gérer les gestures, enfin peut être que je me trompe...

    Dernière idée, utiliser une seekbar pour m'occuper du redimensionnement... en appellant une methode qui regenere tous les elements graphiques...Je vais voir.
    Cela revient vers l'histoire du canvas .... tu n'as pas besoin du seek bar , normalement cela ce fait sous Android avec des ZoomControls , ou avec la gesture (exemple maps).

  4. #4
    Membre actif
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Par défaut
    Bien je vais tenter de me lancer dans le Canevas...
    Auriez-vous un bon tuto à me conseiller ?

    Pour l'instant je pars sur : http://developer.android.com/guide/t...-graphics.html

    Je ne la connais pas du tout mais j'ai une vague idée de ce dont elle est capable.
    Je vais voir ce que je peux en tirer mais j'attends toujours de nouvelles propositions au cas où.

    hors sujet : Je me trompe où est-il aussi possible d'utiliser canevas pour réaliser quasi entièrement des jeux 2d ?

  5. #5
    Membre actif
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Par défaut
    re bonjour Feanorin,
    pourrais-tu me donner plus détails sur ta proposition :
    tu peux essayer de te créer une View personnaliser, tu pourras comme cela gérer le zoom sur celle ci via les méthodes, pour cela il faudra peut être utiliser la méthode http://developer.android.com/referen...sure(int, int) et en plus une scroll ...pour ce déplacer dans le zoom.
    Je ne vois pas comment utiliser onMeasure pour gerer le zoom. (ni son interet).
    j'ai compris que lors de la ré écriture de cette méthode, il fallait appeller setMeasuredDimension(...) mais c'est tout.

    Concernant la scroll, tu voulais t'y prendre comment ? Moi j'ai utilisé OnGestureListener sur l'activité utilisant ma vue personnalisée.

  6. #6
    Expert confirmé

    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
    Par défaut
    Je ne vois pas comment utiliser onMeasure pour gerer le zoom. (ni son interet).
    La procédure onMeasure te permet de définir la taille associer à ta vue.
    Donc plus tu augmente sa taille plus tu zoomera, rien de plus simple.

    j'ai compris que lors de la ré écriture de cette méthode, il fallait appeller setMeasuredDimension(...) mais c'est tout.
    oui donc à toi de définir la nouvelle taille de ta vue en fonction du niveau de zoom.

    Concernant la scroll, tu voulais t'y prendre comment ? Moi j'ai utilisé OnGestureListener sur l'activité utilisant ma vue personnalisée.
    Je pense que cela est une bonne idée. après tu peux toujours essayer de l'implémenter à partir d'une ScrollView mais sur ce point je ne me rappelle plus du résultat si tu changes la taille d'une des vue contenu. (il me semble que cela marche mais j'ai un gros doute).

    hors sujet : Je me trompe où est-il aussi possible d'utiliser canevas pour réaliser quasi entièrement des jeux 2d ?
    Oui, c'est possible.

Discussions similaires

  1. [PHPExcel] Redimensionner les colonnes et graphiques
    Par Archalia dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 16/03/2010, 08h16
  2. Réponses: 3
    Dernier message: 03/06/2009, 08h22
  3. Redimensionner un graphique en VBA
    Par ShAk44 dans le forum Excel
    Réponses: 1
    Dernier message: 25/07/2007, 17h19
  4. Redimensionnement échelle graphique VBA
    Par lololoic dans le forum Access
    Réponses: 7
    Dernier message: 09/01/2007, 11h07
  5. Graphiques Excel et VBA, Comment redimensionner?
    Par dav_e77 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/01/2007, 17h47

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