2011-11-05 4 views
0
@Override 
    public boolean onTouchEvent(MotionEvent event) { 

     X = (int) event.getX(); 
     Y = (int) event.getY(); 

     switch (event.getAction()) { 

     case MotionEvent.ACTION_DOWN: 

      Toast.makeText(context, X + "-" +Y, 
        Toast.LENGTH_LONG).show(); 
      break; 
     } 

     return true; 
    } 

J'essaie d'utiliser ce code pour obtenir les coordonnées x et y de la toile sur WVGA800, version Android 2.1Obtenir les coordonnées erronées sur toile sur WVGA800

Mais je ne reçois pas l'exacte coordonnées de l'écran.

Répondre

0

Essayez ceci:

switch (event.getAction()) { 

    case MotionEvent.ACTION_DOWN: 
     X = (int) event.getX(); 
     Y = (int) event.getY(); 

     Toast.makeText(context, X + "-" +Y, 
       Toast.LENGTH_LONG).show(); 
     break; 
    } 

    return true; 
} 

Vous obtiendrez les coordonnées de la position où vous avez touché le bas.

+0

vous obtiendrez les coordonnées de la position où vous avez atterri – Raj

2

Voulez-vous obtenir les coordonnées de l'écran ? Votre code est en train d'obtenir les coordonnées (rapportées par l'événement) par rapport à votre vue/toile. Si les coordonnées de l'écran sont ce que vous voulez, essayez d'utiliser View.getLocationOnScreen pour le calculer en fonction des coordonnées de la vue.

X = (int) event.getX(); 
Y = (int) event.getY(); 
int[] position = new int[2]; 
position[0] = X; 
position[1] = Y; 
this.getLocationOnScreen(position); 
Questions connexes