我正试图在Android应用程序中的随机位置绘制圆屋顶圆圈。 我在位图上绘制它们,然后在画布上绘制该位图。这是绘制圆圈的功能:
private void drawRandomCircles(int numOfCircles) {
Canvas c = new Canvas(b);
Paint cPaint = new Paint;
cPaitn.setColor(Color.RED);
for(int i = 0; i < numOfCircles; i++) {
int x = Math.Random % 100;
int y = Math.Random % 100;
c.drawCircle(x, y, 20, cPaint)
}
}
位图b是全局的。 调用此函数后,我只需在onDraw方法中绘制位图。 现在的问题是,我只在屏幕上绘制一个圆圈,无论numOfCircles的大小。
任何线索在这里发生了什么?
答案 0 :(得分:1)
该代码甚至无法编译。例如new Paint;
是什么?
我建议您将参数记录到drawCircle
,以确保在不同位置绘制它们。例如,Math.Random
是一个字段,它会在读取之间发生变化,这会使圆圈相互叠加。
如果您打算写Math.random()
,则错误是Math.random()
返回0到1之间的值。您可能想要使用
Random r = new Random();
// your loop
int x = r.nextInt(100);
int y = r.nextInt(100);