Je viens de commencer avec Android et je me demandais comment utiliser les écouteurs dans une toile. Particulièrement dans le cadre de mon projet, l'objectif est qu'un événement se produise lorsque l'on fait glisser un clic d'un point à un autre. Le concept provient d'un jeu appelé brainvita. Le jeu n'a pas besoin d'être compris pour répondre à ma question. Tout ce que je veux savoir est le moyen le plus simple de faire un écouteur pour les clics glisser d'un point à un autre sur le canevas? Dois-je mapper le canevas sur une grille et avoir plusieurs auditeurs? Quelle est la manière la plus simple?Android Listener sur toile?
De plus, je joins le code du jeu développé jusqu'ici, juste les bases qui aident à afficher la grille!
package com.project.android.brainvita;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
public class GameView extends View {
Paint paint = new Paint();
Paint paintF = new Paint();
Paint paintG = new Paint();
int width, height;
int MARGIN = 4;
int MARGIN_BIG = 10;
int sx = 2;
public GameView(Context context) {
super(context);
paint.setColor(Color.WHITE);
paintF.setColor(Color.rgb(40, 60, 204));
paintG.setColor(Color.rgb(240, 30, 20));
}
public void onDraw(Canvas canvas) {
// Draw external circle
canvas.drawCircle(width/2, height/2, (width - MARGIN)/2, paintF);
// Calculate radius of small circles
int radius = (width - MARGIN_BIG*2)/14;
// Draw grid
for (int j = -3; j <= 3; j++) {
if (j >= -1 && j <= 1)
for (int i = -3; i <= 3; i++) {
canvas.drawCircle(width/2 + (2 * radius * i), height/2
+ (2 * radius * j), radius - sx, paint);
}
else
for (int i = -1; i <= 1; i++) {
canvas.drawCircle(width/2 + (2 * radius * i), height/2
+ (2 * radius * j), radius - sx, paint);
}
}
}
protected void onSizeChanged(int w, int h, int ow, int oh) {
width = w;
height = h;
}
}
Alors, comment utiliser l'onTouchListener pour obtenir des emplacements sur la toile pour un clic glisser? J'ai besoin des coordonnées sur la toile pour un cliquer-glisser d'un point à un autre. En utilisant à la fois les coordonnées, je vais déterminer si c'est un mouvement valide ou non et en conséquence avoir la sortie. – degant
Vous devez garder le contexte du jeu en dehors de la portée de la toile. Considérez votre toile comme étant un dessin du contexte du jeu, c'est-à-dire "Je vais dessiner le plateau de jeu sur la toile" au lieu de penser à votre toile comme le plateau de jeu. L'onTouchListener devrait consulter le plateau de jeu partagé pour déterminer si le coup est valide et la méthode de tirage devrait simplement dessiner le plateau de jeu. Vous devez cliquer sur la zone tactile pour déterminer ce qui a été cliqué, puis consulter le plateau de jeu pour savoir s'il est valide. –