【发布时间】:2011-09-28 12:52:12
【问题描述】:
好的,我正在玩扩展视图的 ontouch 事件。
我所做的是在触摸时画一个圆圈.. 当你移动时,圆圈会跟随。当您移动时,会形成另一个圆圈,并将坐在减小半径的位置,直到它消失......(现在最多 10 个圆圈)。我还可以同时处理多个手指触摸。这就是问题所在。代码很糟糕!
创建多个圆圈这是我的绘画方法:
public void onDraw(Canvas canvas)
{
paint.setColor(Color.RED);
paint.setStyle(Style.STROKE);
paint.setStrokeWidth(stroke);
canvas.drawCircle(x,y,radius,paint);
canvas.drawCircle(x1,y1,radius1,paint);
canvas.drawCircle(x2,y2,radius2,paint);
canvas.drawCircle(x3,y3,radius3,paint);
canvas.drawCircle(x4,y4,radius4,paint);
canvas.drawCircle(x5,y5,radius5,paint);
canvas.drawCircle(x6,y6,radius6,paint);
paint.setColor(Color.BLUE);
canvas.drawCircle(x7,y7,radius7,paint);
canvas.drawCircle(x8,y8,radius8,paint);
paint.setColor(Color.YELLOW);
canvas.drawCircle(x9,y9,radius9,paint);
canvas.drawCircle(x10,y10,radius10,paint);
}
所以你可以看到这到目前为止效率很低,并且会产生一些很长的讨厌的代码。部分问题是我只能在 Ontouch 中更改坐标。并且无效。任何人都知道我可以更有效地做到这一点的方法(在更面向对象的类型方法中)。
【问题讨论】:
-
你应该将 x, y 存储在一个 Arraylist 中,并在点内迭代 arraylist 对象以绘制点
标签: android graphics multi-touch touch-event ontouchlistener