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 :

onTouch, event.getX / getY : Quelle unité?


Sujet :

Android

  1. #1
    Membre actif Avatar de IsiTech
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Janvier 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Janvier 2012
    Messages : 105
    Points : 268
    Points
    268
    Par défaut onTouch, event.getX / getY : Quelle unité?
    Bonjour,

    Lorsque l'on reçoit un évènement, il est possible d'obtenir les coordonnées de celui ci pour divers traitements avec event.getX() par exemple. Cependant ces coordonnées ne correspondent pas à la résolution de l'écran, de plus l'utilisation de getRawX() donne les mêmes valeurs. Je recherche donc l'unité de ces coordonnées, et s'il existe un moyen simple pour passer à l'échelle de la résolution de l'écran. Avez vous des informations ?

    Merci et bonne journée.

    Edit : Il semblerait que ce soit des dp et le calcul pour passer de l'un à l'autre devrait être px = dp * (dpi / 160), mais le calcul ne fonctionne pas très bien...

  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
    Pourtant c'est bien dans la documentation:
    For a touch screen, reports the absolute Y screen position of the center of the touch contact area. The units are display pixels.
    Cela me semblait bizarre aussi qu'un "event" soit en DP... les "DP" (ou "SP") sont principalement utilisés pour construire l'interface, ensuite tout se déroule en pixels.

    Et sinon oui, la formule est toujours:
    px = dp * (dpi / 160), avec dpi valant l'une des valeurs "fixes": 120 (ldpi), 160 (mdpi), 240 (hdpi) ou 320 (xhdpi)
    http://nicroman.developpez.com/tutor...nites-mesures/
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre actif Avatar de IsiTech
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Janvier 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Janvier 2012
    Messages : 105
    Points : 268
    Points
    268
    Par défaut
    En fait j'ai présenté le problème à l'envers. Je lis les coordonnées brutes avec "getevent -t /dev/input/event2" grâce à une application root, et je cherche à les convertir en DP. Je sais les convertir en px, maintenant je sais passer de px à dp, mais les valeurs ne concordent pas avec les valeurs données par l'Event d'un onTouch(...). Je continue de chercher voir si je trouve quelque chose.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Et si tu mets l'origine à la vue contenant l'événement onTouch géré ?
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre actif Avatar de IsiTech
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Janvier 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Janvier 2012
    Messages : 105
    Points : 268
    Points
    268
    Par défaut
    La mise à l'origine et l'utilisation d'un dpi à 260 au lieu du 252 que j'avais lu sur wikipedia m'a permit d'avoir des valeurs à +-3, ce qui est déjà pas mal. Merci pour vos réponses, je marque résolu .

  6. #6
    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
    dpi NE PEUT PAS être 260... c'est obligatoirement 240....

    Il ne faut pas confondre les dpi "hardware" (transformation "pixels en pouces/cm/mm") qui peuvent être 252
    Et les dpi "logique" (UI) qui ne peuvent être que 120, 160, 240, ou 320 (transformation "pixels en dp")

    C'est tout bien expliqué dans le tuto que j'avais linké
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Membre actif Avatar de IsiTech
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Janvier 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Janvier 2012
    Messages : 105
    Points : 268
    Points
    268
    Par défaut
    En effet, en vérifiant j'ai utilisé des pixels per inch (PPI) au lieu des dpi dans la formule, et ça me donne exactement ce que je veux, c'est assez étrange. J'ai utilisé les valeurs PPI données sur la page wikipedia des écrans de smartphones qui est de 252 pour un HTC Desire, mais en la mettant à 260 j'obtiens des résultats assez précis que je n'obtiens pas avec la valeur 252. C'est assez étrange et j'avoue ne pas tout comprendre mais ça fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelles unitées de mesure utilise?
    Par the-destroyer dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 21/11/2009, 19h23
  2. Quelle unité gère la persistance dans Seam ?
    Par EAKOM dans le forum Seam
    Réponses: 0
    Dernier message: 21/05/2009, 17h31
  3. Réponses: 9
    Dernier message: 25/09/2007, 15h43
  4. TSHFileInfo : dans quelle unitée?
    Par bob1980 dans le forum Delphi
    Réponses: 2
    Dernier message: 22/05/2007, 15h37
  5. Réponses: 10
    Dernier message: 10/05/2006, 18h32

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