如果我的问题太简单,请道歉。
我正在开发一个Android应用程序,我在其中显示用户在地图中的位置。我还在用户点周围显示一个圆圈。
我在ItemizedOverlay中的代码是:
public void setGeoPoints(GeoPoint theGeoPoints, int theCircleRadius)
{
this.itsGeoPoints = theGeoPoints;
itsPaint = new Paint();
itsPaint.setARGB(10, 0, 0, 205);
this.itsCircleRadius = theCircleRadius;
}
@Override
public void draw(Canvas theCanvas, MapView theMapView, boolean shadow)
{
super.draw(theCanvas, theMapView, shadow);
Point pt = theMapView.getProjection().toPixels(itsGeoPoints, null);
float projectedRadius = theMapView.getProjection().metersToEquatorPixels(itsCircleRadius);
theCanvas.drawCircle(pt.x, pt.y, projectedRadius, itsPaint);
}
使用上面的代码,我可以完美地围绕用户的位置获得一个蓝色圆圈。
现在,我需要为不同颜色的圆圈设置边框。也就是说,带有粗体边框(不同颜色)的圆圈。
对此有任何帮助。
谢谢。
答案 0 :(得分:1)
您需要创建一个单独的Paint
对象,其STROKE样式集使用Paint.setStyle
和不同颜色设置。
如果你有这个新drawCircle
再次致电Paint
。
答案 1 :(得分:0)
谢谢MaciejGórski!
public void setGeoPoints(GeoPoint theGeoPoints, int theCircleRadius)
{
this.itsGeoPoints = theGeoPoints;
itsPaint1 = new Paint();
itsPaint1.setARGB(150, 0, 0, 255);
itsPaint1.setStyle(Style.STROKE);
itsPaint2 = new Paint();
itsPaint2.setStyle(Style.FILL);
itsPaint2.setARGB(5, 0, 0, 200);
this.itsCircleRadius = theCircleRadius;
}
@Override
public void draw(Canvas theCanvas, MapView theMapView, boolean shadow)
{
super.draw(theCanvas, theMapView, shadow);
Point pt = theMapView.getProjection().toPixels(itsGeoPoints, null);
float projectedRadius = theMapView.getProjection().metersToEquatorPixels(itsCircleRadius);
theCanvas.drawCircle(pt.x, pt.y, projectedRadius, itsPaint1);
theCanvas.drawCircle(pt.x, pt.y, projectedRadius, itsPaint2);
}