Java 如何交换两个圆
在我的课上,我在画布上画了36个圆圈,这是从View课扩展而来的 我想了解的是,我怎样才能像游戏商店里的两点游戏一样,改变他们在两人之间的位置 我该怎么做 以下是我的onDraw方法代码:Java 如何交换两个圆,java,android,android-canvas,android-view,Java,Android,Android Canvas,Android View,在我的课上,我在画布上画了36个圆圈,这是从View课扩展而来的 我想了解的是,我怎样才能像游戏商店里的两点游戏一样,改变他们在两人之间的位置 我该怎么做 以下是我的onDraw方法代码: @Override protected void onDraw (Canvas canvas){ // TODO Auto-generated method stub super.onDraw(canvas); int xArt = 0, yArt = 0, x, y; x =
@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;
}
}
}
@覆盖
受保护的void onDraw(画布){
//TODO自动生成的方法存根
super.onDraw(帆布);
int-xArt=0,yArt=0,x,y;
x=getWidth()/4-50;
y=getHeight()/2-50;
画布.drawARGB(96,25,139,10);
对于(int i=1;i<37;i++){
画布.画圈(x+xArt,y+yArt,30,paint.get(i));
yArt+=100;
如果(i%6==0){
xArt+=100;
yArt=0;
}
}
}
图片如下:
那么您在自定义的
视图中绘制了36个圆,您只想交换其中的两个?这是可能的。只需将圆的x和y坐标(x+xArt,y+yArt
)存储在阵列列表中即可。以后可以使用此选项交换圆。但是在这里交换意味着你需要重新绘制所有36个圆圈。这就是自定义视图的问题所在,即使您做了一点小小的更改,也需要重新绘制整个视图
在你的情况下,我认为这是昂贵和不必要的。相反,您需要做的是编写一个自定义的ViewGroup
,或者在足够的情况下使用任何布局。将圆圈
作为子对象添加到视图组
。现在您可以简单地使用getChild
并交换它们。这不需要您重新绘制所有36个圆。可能您可以使用一些数组来存储圆(位图),然后交换!