2013-07-17 358 views
0

我嘗試使用方法drawCircle(...)在Canvas的幫助下創建一個圓。但最終爲什麼讓我成爲一個橢圓而不是一個圓?我怎樣才能得到「真實」的圈子?Android Canvas.drawCircle()錯誤。持續繪製橢圓而不是圓形

Bitmap bitmap = Bitmap.createBitmap((int) (widthView), heightView, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bitmap); 
    Paint paint = new Paint(); 
    paint.setColor(Color.parseColor("#FF950000")); 
    paint.setAntiAlias(true); 
    paint.setStyle(Style.FILL); 
    canvas.drawRect(0.0f, 0.0f, widthView, heightLevel, paint); 
    paint.setColor(Color.parseColor("#FFD4A503")); 
    canvas.drawRect(0.0f, heightLevel, widthView, 2 * heightLevel, paint); 
    paint.setColor(Color.parseColor("#FF4A7816")); 
    canvas.drawRect(0.0f, 2 * heightLevel, widthView, 3 * heightLevel, 
    paint); 
    paint.setColor(Color.parseColor("#FFFFFFFF")); 
    canvas.drawCircle(30 * density, getLevelHeight(1), 20f, paint); graphicView.setBackgroundDrawable(new BitmapDrawable(getResources(), 
    bitmap)); 

結果:

的Nexus 4

enter image description here

華爲G500Pro(服務)

enter image description here

+0

嘗試使用'setImageBitmap()'而不是'setBackgroundDrawable()' – Vikram

+0

謝謝,這對我有幫助。請做你的評論作爲答案 - 我會投票(最佳答案)。 –

+0

感謝Siruk,很高興我能幫上忙。 – Vikram

回答

0

您應該使用setImageBitmap(Bitmap)代替setBackgroundDrawable()

此外,setBackgroundDrawable()已被棄用。

+0

這是怎麼回事,你能不能解釋一下 – mSO

+0

@Manish我無法解釋這個Manish。看看這個問題的評論。我建議使用'setImageBitmap()',因爲它看起來像OP試圖設置'graphicView'的內容而不是它的背景。我沒有任何線索可以解決問題。爲什麼它解決了這個問題對我來說是個謎。 – Vikram