2011-11-25 92 views
1
@Override 
protected void onDraw(Canvas canvas) { 
    // TODO Auto-generated method stub 
    super.onDraw(canvas); 
    Paint paint = new Paint(); 
    paint.setAntiAlias(true); 
    paint.setColor(Color.RED); 
    canvas.drawCircle(10,10,10, paint); 
    //canvas.drawRect(10,20,30,40, paint); 
} 

这是一个简单的onDraw函数。我对drawRect发表评论。我的目标是找到一种让这个函数随机选取绘制圆或矩形的方法。有人能告诉我该怎么做吗?如何随意使用画布绘制?

回答

0
if(new Random().nextInt(2)==0) 
    canvas.drawCircle(10,10,10,paint); 
else 
    canvas.drawRectangle(10,20,30,40,paint); 

将您的操作基于随机数。 nextInt(x)提供一个小于x且等于或大于零的整数。

我使用nextInt(),因为它提供了扩展到2个以上的选择的灵活性,如果你想...那么你可以使用相同的结构与switch()语句,例如...否则,作为st0le评论,nextBoolean()是一个很好的选择。

+1

我会'已经去过'nextBoolean()':) – st0le

+1

@ st0le - 我只是在想这种方法可以推广到x选项(很多不同的形状) –

+0

真正的彼得,只是觉得我应该提到它。 :) – st0le

0

这是一个多机器人的问题一个java的问题,但只要你不需要精确的精度(随机函数是不是所有的随机我相信),这将做到:

@Override 
protected void onDraw(Canvas canvas) { 
    // TODO Auto-generated method stub 
    super.onDraw(canvas); 
    Paint paint = new Paint(); 
    paint.setAntiAlias(true); 
    paint.setColor(Color.RED); 
    if (Math.random() > 0.5) 
     canvas.drawCircle(10,10,10, paint); 
    else 
     canvas.drawRect(10,20,30,40, paint); 
}