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 :

Double Click sur Carte


Sujet :

Android

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut Double Click sur Carte
    Bonsoir,

    J'ai une petite question, est qu'on peut intercepter un double click sur une carte google Map au niveau d'un ItemizedOverlay?

    Je voudrais que sur click il ajoute un marqueur et sur double click il indique la distance totale de l'itinéraire dessinée en reliant les différents points indiqués.

    Si c'est fesable merci d'indiquer comment car j'arrive pas à trouver.

    Merci d'avance

  2. #2
    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,

    http://code.google.com/intl/fr-FR/an....maps.MapView)

    Tu as la fonction OnTouchEvent sur ItemizedOverlay, à partir de là tu peux trouver le double click .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    Bonjour,

    j'ai exactement vers quoi je m'étais tourné et j'étais justement entrain de chercher comment indiquer que l'event est un double click, pour le simple click j'ai fait :
    est que il suffit de dire
    ?
    je suis entrain de tester et je vous tiens au courant

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Points : 492
    Points
    492
    Par défaut
    Bonjour,

    Je n'ai jamais expérimenter mais à titre indicatif cela ne répondrait-il pas à ta demande ? :

    http://developer.android.com/referen...pListener.html

    Tu as une explication en Français sur ce ticket :
    http://android.cyrilmottier.com/?p=215

    Cordialement,
    Si ma réponse ou ma question vous semble pertinente un clique sur le pouce vert.
    La base des Expression Access à Connaitre : http://office.microsoft.com/fr-ca/ac...295.aspx?CTT=3
    Un livre de chevet parfait : "Développement Android": http://www.editions-eyrolles.com/Livre/9782212125870/

  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
    Le gesture n'est pas la solution pour les overlays à mon avis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public boolean onTouchEvent(MotionEvent motionEvent,MapView view) {
            final int action = motionEvent.getAction();
            final int fingersCount = motionEvent.getPointerCount();
     
            if ((action == MotionEvent.ACTION_POINTER_UP) && (fingersCount == 2)) {
               // Double Tap
     
                return false;
            }
     
            return true;
        }
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    J'ai testé ton code mais il ne marche pas, le simple click je le détecter avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action == MotionEvent.ACTION_UP
    j'ai utilisé le code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public boolean onTouchEvent(MotionEvent event, MapView mapView) {
    		final int action = event.getAction();
    		final int fingersCount = event.getPointerCount();
    			if ((action == MotionEvent.ACTION_UP)
    					&& (fingersCount == 2)) {
    				// Double Tap
    				fin = true;
    				...............
    				return false;
    			}
    			// ---when user lifts his finger---
    			else if ((action == MotionEvent.ACTION_UP)
    					&& (fingersCount == 1)) {
    				fin = false;
    				.................
    				return false;
    			}	
    			return true;
    	}
    Mais il ne detecte que le simple click mais pas le double click, est ce que c'est dû à MotionEvent.ACTION_UP??

    Merci d'avance

  7. #7
    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,

    Le mien je crois que c'est pour détecter le double tap donc le click avec deux doigt .

    Si tu veux détecter le doucle click comme sous windows alors intercepte un premier click et si un autre click arrive avant une tempo de x ms alors tu auras un double click .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public boolean onTouchEvent(MotionEvent motionEvent,MapView view) {
            final int action = motionEvent.getAction();
     
            if ((action == MotionEvent.ACTION_UP) ) {
                count++;
               if (count == 1) {
                      // tu lance un timer de x millisecondes
               }else if (count == 2) {
                     // doucle click
                     count = 0 ;
                     // tu supprimes le timer s'il est en cours
                     return false;
               }
     
     
            }
     
            return true;
        }
    Puis sur ton timer à la fin de son éxécution tu le met à zéro .

    Edit : si tu ne veux pas passer par un timer tu peux le faire avec une Date sauvegardé .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public boolean onTouchEvent(MotionEvent motionEvent,MapView view) {
            final int action = motionEvent.getAction();
     
            if ((action == MotionEvent.ACTION_UP) ) {
                     long time =  System.currentTimeMillis();
                     if(time - lastclick < 250) {
                           // double click
                     }                        
                     lastclick =  System.currentTimeMillis();
                     return false;
            }
     
            return true;
        }
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    En aprofondissant les tests, je me suis rendu compte que le simple click est détecté puis le double click, voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    @Override
    	public boolean onTouchEvent(MotionEvent event, MapView mapView) {
    		final int action = event.getAction();
     
    		if ((action == MotionEvent.ACTION_UP)) {
    			long time = System.currentTimeMillis();
    			if ((time - lastclick < 250) && (fin == false)) {
    				// double click
    				fin = true;
    			} else {
    				i++;
    				GeoPoint p = mapView.getProjection().fromPixels(
    						(int) event.getX(), (int) event.getY());
    				OverlayItem step = new OverlayItem(GeoTools.makeGeoPoint(
    						p.getLatitudeE6() / 1E6, p.getLongitudeE6() / 1E6), "",
    				"");
     
    				items.add(step);
     
    				populate();
    			}
    			lastclick = System.currentTimeMillis();
    		}
     
    		return false;
    	}

Discussions similaires

  1. BDD double click sur une DBGrid
    Par chamamo dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/10/2006, 15h20
  2. double click sur un bouton
    Par gdpasmini dans le forum Windows
    Réponses: 7
    Dernier message: 10/05/2006, 14h38
  3. [VBA-E] Double-Click sur une cellule
    Par boosty dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/04/2006, 15h12
  4. [MFC] Detection d'un double click sur un slider
    Par bennnun dans le forum MFC
    Réponses: 4
    Dernier message: 01/03/2006, 08h07
  5. simuler un double click sur une liste dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/09/2005, 10h45

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