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 du gestionnaire onInterceptTouchEvent


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 du gestionnaire onInterceptTouchEvent
    Bonjour à toutes et à tous,

    Dans une application GPS où j'affiche des cartes, je voudrais pouvoir intervenir au plus haut niveau pour intercepter les évènement de touché d'écran. J'ai vu qu'il existait un gestionnaire d'évènement s'appelant "onInterceptTouchEvent". Je n'arrive pas à le mettre en œuvre. Apparemment ce gestionnaire fonctionne avec les ViewGroup ... que je n'ai pas dans mon application.

    Pourtant, dans mon application je gère bien les évènement de touché par un gestionnaire tel que le montre le code suivant ;

    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
    27
    28
    29
    30
    public class MainActivity extends Activity implements SensorEventListener, LocationListener {
      ...
      RelativeLayout affCarte;
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        affCarte = (RelativeLayout)findViewById(R.id.AffCarte);
        monImg = new Dessin(this);
        affCarte.addView(monImg);
        ...
        affCarte.setOnTouchListener(new View.OnTouchListener() { // Déplacement de la carte par touché de l'écran
        @Override
          public boolean onTouch(View v, MotionEvent event) {
            int action = event.getAction();
            if (action == MotionEvent.ACTION_DOWN) {
              xd = event.getX();
              yd = event.getY();
            }
            if (action == MotionEvent.ACTION_MOVE) {
              deplaceAff(event.getX(), event.getY());
    			  	}
            if (action == MotionEvent.ACTION_UP) {
              ...
            }
          }
          return false;
        }
      });	
    }
    Comment introduire dans ce code le gestionnaire onInterceptTouchEvent ?

    Merci de votre aide.

    Pierre

  2. #2
    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
    Réfléchissant à ce problème d’empilage des évènements, j'en viens à la conclusion que, pour éviter d'être perturbé par des évènements qui vont se dépiler et que je ne saurai pas trier de ceux qui me conviennent, le seul moyen est de les empêcher d'aller se mettre sur la pile.

    Question : comment fait-on pour bloquer / débloquer l'arrivée d'évènements sur la pile ?

    Merci de votre aide.

    Pierre

Discussions similaires

  1. [OL-2007] Utiliser le gestionnaire des contacts professionnels
    Par kahmsin-f dans le forum Outlook
    Réponses: 0
    Dernier message: 05/06/2009, 16h23
  2. Réponses: 10
    Dernier message: 20/08/2007, 10h47
  3. Réponses: 2
    Dernier message: 23/07/2007, 07h00
  4. Réponses: 3
    Dernier message: 29/08/2006, 12h10

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