2013-02-25 41 views
0

我一直在研究這一段時間。此代碼:Android canvas.drawPoint忽略Paint.Cap round

Log.i(TAG, "stroke style: " + paint.getStyle()); 
Log.i(TAG, "stroke cap: " + paint.getStrokeCap()); 
canvas.drawPoint(p.x, p.y, paint); 

向日志打印「STROKE」和「ROUND」,但在地圖上繪製了一個黑色的SQUARE!任何人都知道我需要以不同的方式來生產一個點而不是一個方形!

謝謝!

編輯 我要去給畫圓用一個鏡頭的下方建議(S),但我只是困惑我猜,因爲一切我讀過表示您應該能夠表明你想要一個圓那樣。一個例子是this google book entry

+1

我認爲cap選項是'Path's而不是'Shapes'。 – 2013-02-25 18:46:12

回答

0

,你可以嘗試用drawCircle()p.x作爲p.y中心(第一和第二個參數),並使用1 or 2爲半徑取決於你有多大希望的點是與中風風格FILL使用paint ..

1

嘗試使用drawCircle代替

circlePaint.setStyle(Style.FILL); 
circlePaint.setAntiAlias(true); 
circlePaint.setColor(0xFFFF0000); //opaque red 
float radius = 10f; //10 pixels 

canvas.drawCircle(p.x, p,y, radius, circlePaint); 
0

它汲​​取正確的,如果你要畫一個位圖支持的畫布。如果直接繪製到屏幕上(例如,傳遞給View的onDraw()方法的畫布),似乎並不正確。因此,解決問題的另一種方法是首先渲染位圖,然後將其繪製到屏幕上。