2013-02-25 43 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()方法的画布),似乎并不正确。因此,解决问题的另一种方法是首先渲染位图,然后将其绘制到屏幕上。