我对canvas安卓有两个疑问。
他们解释如下:
首先,我在画布上绘制了一排圆圈,我想捕捉圆形的x和y坐标(仅在一个圆圈上),这样我就可以在圆圈上绘制一个位图(在中心)。 / p>
其次,我想暗示在圈子上触摸事件,即我希望他们在有人触摸它们时改变颜色任何人都可以帮助我吗?
答案 0 :(得分:1)
表示#2: 计算点中心与触摸事件之间的距离 - 如果距离小于圆的半径 - 按下圆圈
答案 1 :(得分:0)
首先,您应该为“圈区”创建GridSector类。
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);
}
}
然后创建您想要触摸的视图。
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 ) ;
}
}
}