2011-11-25 52 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); 
}