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 :

Utilisation de scrollView .. ou pas


Sujet :

Android

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Utilisation de scrollView .. ou pas
    Bonjour à toutes et à tous,

    Je souhaite développer une application de type navigation avec GPS sur cartographie. Mon problème : afficher une image qui est plus grande que la fenêtre d'affichage, pouvoir la faire défiler verticalement et horizontalement par toucher de l'écran et par programmation.

    J'ai essayé avec deux SscrollView imbriqués (ScrollView et HorizontalScrollView), mais, malgré avoir mis à peu près toutes les combinaisons possibles des paramètres de ces Scroll, le résultat n'est pas probant. Au toucher, le déplacement vertical se fait correctement, mais il faut relever le doigt et retoucher l'écran pour avoir un déplacement horizontal : pas moyen d'avoir les deux (H et V) simultanés. Dans ces conditions je n'ai pas essayé par programmation.

    Est-ce la bonne voie, et si oui comment procéder ?

    Une autre méthode que les ScrollView est-elle envisageable et si oui, laquelle ?

    Merci de votre aide.

    Pierre

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Non ce n'est clairement pas la bonne route...

    Il vaudrait mieux gérer soit même le "draw", et les events "onTouch".
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par nicroman Voir le message
    Non ce n'est clairement pas la bonne route...

    Il vaudrait mieux gérer soit même le "draw", et les events "onTouch".
    N'utilisant pas les scrollview, j'arrive à faire bouger mon image par les "Ontouch". Pour autant les mouvements sont bizarres (dédoublement de l'image) et surtout, mon image est limitée à la taille de l'écran. Donc quand je la déplace, c'est du blanc qui vient remplir les bords.

    Les scrollview ont cet avantage de mettre toute l'image potentiellement en vue. Je vois deux solutions (certainement parmi d'autres) :

    • utiliser les scrollview pour avoir l'image entière, mais désactiver ses ontouch (comment fait-on ?) automatique pour les remplacer par des ontouch programmés,
    • ne pas utiliser les scrollview, mais alors comment fait-on pour avoir l'image entière visualisable par déplacement ?


    Merci pour votre aide.

    Pierre

  4. #4
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    idée: au lieu de scroller (comme le scroll pose problème), tu pourrais montrer l'image complète, et onTouch faire des zoom in/zoom out.
    Si la réponse vous a aidé, pensez à cliquer sur +1

  5. #5
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Le probleme du scroll-view est que justement il capture les onTouch pour faire du scroll
    Et je crois qu'il est limité à vertical/horizontal pas les deux.

    Donc faire un vue soit-meme et gérer les onTouch est exactement ce que j'indique... bien entendu... il faut gérer les onDraw et donc à chaque mouvement "on touch":
    * Déplacer l'image.
    * Rafraîchir les deux zones devenues blanches par le déplacement.

    Si l'image est déjà plus grande que la view (attention à la mémoire quand même, 32MB c'est vite atteint !), il suffit à priori de faire un "invalidate" la matrice utilisée pour dessiner s'occupant de faire le "mouvement".
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  6. #6
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par nicroman Voir le message
    Le probleme du scroll-view est que justement il capture les onTouch pour faire du scroll
    Et je crois qu'il est limité à vertical/horizontal pas les deux. ...
    Est-ce à dire que les deux scroll sont exclusifs : quand on bouge l'un, l'autre ne peut pas bouger (ce qui semble effectivement se passer) ?

    Citation Envoyé par nicroman Voir le message
    ...Donc faire un vue soit-meme et gérer les onTouch est exactement ce que j'indique... bien entendu... il faut gérer les onDraw et donc à chaque mouvement "on touch":
    * Déplacer l'image.
    * Rafraîchir les deux zones devenues blanches par le déplacement. ...
    Est-ce le "invalidate" qui rafraichit l'image ? Et si oui, est-ce même "invalidate" qui va combler les blancs créés par un déplacement, pour autant que l'image soit plus grande que l'écran ?

    Si j'ai bien compris, la procédure serait la suivante :

    • capter par un OnTouchListener, les déplacements,
    • dans la procédure OnDraw, récupérer ces déplacements et appliquer la bonne procédure (laquelle ?) qui va afficher la bonne partie de l'image,
    • en fin du OnToucListener, faire un "invalidate".


    Je vais essayer tout ça.

    Merci de votre aide.

    Pierre

Discussions similaires

  1. [EasyPHP] IIS/utiliser mon serveur et pas localhost
    Par fantagaro dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 04/07/2007, 17h49
  2. Réponses: 6
    Dernier message: 31/05/2007, 22h36
  3. [MYSQL] [débutant] utiliser replace avec mysql.pas
    Par alex01pernot dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/08/2006, 21h23
  4. [Débutant] Utiliser un SGBD ou pas (VC++) ?
    Par skual dans le forum Débuter
    Réponses: 7
    Dernier message: 30/01/2006, 14h08
  5. Réponses: 12
    Dernier message: 26/10/2005, 15h28

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