我在我的班级画了36个圆圈,从View类扩展。
我想了解的是,我如何在Play商店中改变他们之间的位置,比如Two Dots游戏。
我该怎么做?
这是我的onDraw方法代码:
@Override
protected void onDraw (Canvas canvas){
// TODO Auto-generated method stub
super.onDraw(canvas);
int xArt = 0, yArt = 0, x, y;
x = getWidth() / 4 - 50;
y = getHeight() / 2 - 50;
canvas.drawARGB(96, 25, 139, 10);
for (int i = 1; i < 37; i++) {
canvas.drawCircle(x + xArt, y + yArt, 30, paint.get(i));
yArt += 100;
if (i % 6 == 0) {
xArt += 100;
yArt = 0;
}
}
}
答案 0 :(得分:2)
因此,您在自定义View
中绘制了36个圆圈,并且您只想交换其中两个圆圈?有可能的。只需将圆圈的x和y坐标(x + xArt, y + yArt
)存储在ArrayList
中即可。您可以稍后使用它来交换圈子。但是在这里交换意味着你需要重绘所有36个圆圈。这就是自定义视图的问题,即使您进行了轻微更改,也需要重新绘制整个视图。
在您的情况下,我认为这是昂贵且不必要的。相反,您需要做的是编写自定义ViewGroup
或使用任何布局(如果这足够)。将您的Circles
作为孩子添加到ViewGroup
。现在您只需使用getChild
并交换它们即可。这不需要您重绘所有36个圆圈。