Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Multi-touch sur plusieurs vues

    10 février 2013 à 20:30:33

    Bonsoir, dans le cadre d'un projet tuteuré je réalise une application android, je vous passe les détails mais actuellement j'ai un client ( le smartphone) qui envoie des données à un serveur java qui exécute des macro à l'aide de la classe Robot, le tout vie Bluetooth. Bref, je suis en train de coder une manette de jeu et le problème sur lequel je butte est la gestion du multi-touch... Je n'arrive pas à différencier les différents boutons ... J'ai implémenter cela sur 2 boutons pour l'instant, voici la fonction OnTouch:

    public boolean onTouch(View v, MotionEvent event) {
            int action = event.getAction();
            String Donnee = "";
            int actionPointerId = action & MotionEvent.ACTION_POINTER_INDEX_MASK;
            if(event.getPointerCount()>1){
                if(v.getId()==R.id.boutonManetteJeuA){
                    switch (action & MotionEvent.ACTION_MASK) {
                    case MotionEvent.ACTION_POINTER_DOWN:{ Donnee="P" + VALEURA; break;}
                    case MotionEvent.ACTION_POINTER_UP:{ Donnee="R" + VALEURA; break;}
                    }
                }
                if(v.getId()==R.id.boutonManetteJeuL){
                    switch (action & MotionEvent.ACTION_MASK) {
                    case MotionEvent.ACTION_POINTER_DOWN:{ Donnee="P" + VALEURL; break;}
                    case MotionEvent.ACTION_POINTER_UP:{ Donnee="R" + VALEURL; break;}
                    }
                }
                try{
                    sendStream= clientBt.getOpStream();
                    sendStream.write(Donnee.getBytes());                    
                    sendStream.flush();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            else{
                if(v.getId()==R.id.boutonManetteJeuA){
                    switch (action & MotionEvent.ACTION_MASK) {
                    case MotionEvent.ACTION_DOWN:{ Donnee="P" + VALEURA; break;}
                    case MotionEvent.ACTION_UP:{ Donnee="R" + VALEURA; break;}
                    }
                }
                if(v.getId()==R.id.boutonManetteJeuL){
                    switch (action & MotionEvent.ACTION_MASK) {
                    case MotionEvent.ACTION_DOWN:{ Donnee="P" + VALEURL; break;}
                    case MotionEvent.ACTION_UP:{ Donnee="R" + VALEURL; break;}
                    }
                }
                try{
                    sendStream= clientBt.getOpStream();
                    sendStream.write(Donnee.getBytes());                    
                    sendStream.flush();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return true;
        }

    Mais actuellement si on appuie sur 2 bouton en même temps, seulement le premier appuyé est activé et ce à chaque fois qu'on appuie/relache le second ... Si quelqu'un pouvais me mettre sur la voie, je lui serais fortement reconnaissant =)
    Merci.

    • Partager sur Facebook
    • Partager sur Twitter

    [Android] Multi-touch sur plusieurs vues

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown