2010-06-15 188 views
0

我想在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的大小如何。

任何线索这里发生了什么?

回答

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); 
+0

首先,我要感谢你的回答和建议值。代码不会编译,因为我手工编写而不是从源代码复制它(我知道它很愚蠢)。 我改变了随机类调用Math.random()调用,并做了诀窍。 再次,非常感谢! – ViktorC 2010-06-15 11:21:37