Я только начал работать с Android, и мне было интересно, как использовать слушателей на холсте.В частности, как часть моего проекта, цель состоит в том, чтобы произошло событие, когда мы перетаскиваем клик из одной точки в другую.Концепция взята из игры под названием brainvita.Не нужно понимать игру, чтобы ответить на мой вопрос.Все, что я хочу знать, - это самый простой способ заставить слушателя перетаскивать клики из одной точки в другую на холсте?
Нужно ли сопоставлять холст с сеткой и иметь несколько слушателей?Какой самый простой способ?
Кроме того, я прилагаю код разработанной игры, только основы, которые помогают отображать сетку!
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;
}
}