如何交换两个圆圈

时间:2015-11-08 21:47:33

标签: java android android-canvas android-view

我在我的班级画了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;
        }
    }

}


这是图片:tinypic.com/r/20a9m4j/9 The picture

1 个答案:

答案 0 :(得分:2)

因此,您在自定义View中绘制了36个圆圈,并且您只想交换其中两个圆圈?有可能的。只需将圆圈的x和y坐标(x + xArt, y + yArt)存储在ArrayList中即可。您可以稍后使用它来交换圈子。但是在这里交换意味着你需要重绘所有36个圆圈。这就是自定义视图的问题,即使您进行了轻微更改,也需要重新绘制整个视图。

在您的情况下,我认为这是昂贵且不必要的。相反,您需要做的是编写自定义ViewGroup或使用任何布局(如果这足够)。将您的Circles作为孩子添加到ViewGroup。现在您只需使用getChild并交换它们即可。这不需要您重绘所有36个圆圈。