2012-01-18 39 views
1

我有以下繪圖代碼的自定義視圖:的Android Canvas.drawCircle()一半大小應該是

@Override 
protected void onDraw(Canvas canvas) 
{ 
    super.onDraw(canvas); 

    canvas.drawColor(Color.BLACK); 

    mPaint.setColor(Color.GREEN); 
    canvas.drawRect(0, 0, 100, 100, mPaint); 
    mPaint.setColor(Color.BLUE); 
    canvas.drawCircle(100, 100, 100, mPaint); 
} 

這應該畫一個正方形,然後一個圓是的大小的兩倍以其中一個角落爲中心。相反,圓與正方形大小相同。

換句話說。它應該看起來像左側的圖像,但實際上看起來像右側的圖像。是什麼賦予了?

Correct rendering on left; actual rendering on right

+1

你確定你的代碼?我只是嘗試了上面的代碼,它會在左邊產生結果,因爲它應該。 – 2012-01-18 20:13:14

回答

2

好了,經過測試,這似乎是在GUI佈局編輯器中的錯誤。我認爲這會匹配設備上的結果,因爲他們實際上運行代碼......這是一個非常奇怪的錯誤,它只會影響到圈子!

此外,這是一個比雙倍值更復雜的錯誤。有時drawCircle()繪製一個橢圓!

無論如何,它在設備上按預期工作。

+1

更新到這裏:我提交這個作爲一個bug之前(剛剛提交問題後),他們修復它。 – Timmmm 2012-10-07 16:58:58

相關問題