2011-10-19 2 views
0

J'ai deux doutes en toile Android.comment obtenir la position (coordonnées x et y) de cercle drwan sur toile dans android?

Ils sont expliqués ci-dessous:

Tout d'abord, j'avais dessiné une rangée de cercles sur toile, je veux capturer les coordonnées x et y du cercle (sur un seul cercle) dessiné pour que je puisse en tirer un bitmap sur le cercle (au centre). Deuxièmement, je veux impliquer l'événement tactile sur le cercle i.e Je veux qu'ils changent de couleur quand quelqu'un les touche Peut-on m'aider avec cela?

+0

« je veux capturez les coordonnées x et y ... "Vous aviez les coordonnées quand vous avez dessiné les cercles - pourquoi ne pas simplement garder les coordonnées pour pouvoir les utiliser plus tard? – mbeckish

+0

que voulez-vous dire par "dessiner un bitmap sur le cercle"? – ligi

Répondre

0

Vous devez d'abord créer une classe GridSector pour votre "zone de cercle".

public class GridSector { 

    private int x = 0; 
    private int y = 0; 
    private Rect rect = new Rect(0, 0, 0, 0); 

    public GridSector(int x, int y, Rect rect) { 
     this.x = x; 
     this.y = y; 
     this.rect = rect; 
    } 

    public int getX() { 
     return x; 
    } 

    public int getY() { 
     return y; 
    } 

    public Rect getRect() { 
     return rect; 
    } 

    public void setRect(Rect rect) { 
     this.rect.set(rect.left, rect.top, rect.right, rect.bottom); 
    } 
} 

Ensuite, cliquez sur Créer pour voir ce que vous voulez toucher.

public class GridSectorsView extends View { 


     GridSector currentSelectedSector; 
     @Override 
      protected void onDraw(Canvas canvas) { 
       super.onDraw(canvas); 
       drawCircle(canvas); // draw your circles; 
      } 

      @Override 
      public boolean onTouchEvent(MotionEvent ev) { 
       switch (ev.getAction()) { 
        case MotionEvent.ACTION_DOWN: { 
        invalidate(currentSelectedSector.getRect()); // update your circles (call onDraw Function) ; 
       } 
      } 
} 
+0

pouvez-vous l'expliquer? comme je suis nouveau à android – userRav

+0

expliquer quoi exactement? – Yahor10

1

pour # 2: calculer la distance entre le centre de votre point et l'événement touche - si la distance est plus petit que le rayon de votre cercle - vous avez appuyé sur le cercle

Questions connexes