gpt4 book ai didi

android - 使用带有 MapView 的自定义绘图的奇怪绘图 Artifact

转载 作者:行者123 更新时间:2023-11-29 14:10:13 25 4
gpt4 key购买 nike

我正在尝试添加自己的可绘制对象并将其用于 MapView 上的一系列叠加层。可绘制对象基本上是一个带有黑色轮廓和中间数字的圆形框。

我已经设法使用下面的代码实现了这一点,但是我的框左侧有一个看起来像旗帜的东西,我当然不认为我已经画了 - 所以我想知道它可能是什么。

这是图像示例:alt text


编辑 - 如果画了一个圆,会发生这种情况: alt text


我的代码如下:

自定义绘图:

public class BikeDrawable extends Drawable {
int colour;
String bikes;

public BikeDrawable (int bikes){
this.bikes = Integer.toString(bikes);
if (bikes < 4) {
colour = Color.RED;
}
else if (bikes > 3 && bikes < 9){
colour = Color.argb(244, 255, 127, 42);
}
else {
colour = Color.GREEN;
}
}
@Override
public void draw(Canvas canvas) {
Paint rectanglePaint = new Paint();
rectanglePaint.setColor(colour);
rectanglePaint.setStyle(Style.FILL);
RectF rectangle = new RectF(0.0f, 0.0f, 20.0f, 20.0f);
Paint strokepaint = new Paint();
strokepaint.setStyle(Paint.Style.STROKE);
strokepaint.setStrokeWidth(2);
strokepaint.setARGB(255, 0, 0, 0);

canvas.drawRoundRect(rectangle, 4.0f, 4.0f, rectanglePaint);
canvas.drawRoundRect(rectangle, 4.0f, 4.0f, strokepaint);

Paint textpaint = new Paint();
textpaint.setARGB(255, 0, 0, 0);
textpaint.setTextAlign(Paint.Align.CENTER);
canvas.drawText(bikes, 10, 14, textpaint);
}

@Override
public int getOpacity() {
return 0;
}

@Override
public void setAlpha(int alpha) {
}

@Override
public void setColorFilter(ColorFilter cf) {
}

}

在 MapView 中使用:

bikeOverlay = new PointsOverlay(start_icon);
BikeDrawable start_1_drawable = new BikeDrawable (start_1.capacity);
OverlayItem start_1_overlayitem = new OverlayItem(new GeoPoint(start_1.lat,start_1.lon), null, null);
start_1_overlayitem.setMarker(start_1_drawable);
mapOverlays.add(bikeOverlay);
bikeOverlay.addOverlay(start_1_overlayitem);

有人知道这里发生了什么吗?它是 OverlayItem 的产物吗?

最佳答案

这是通过重写 PointsOverlay 的 draw() 方法实现的,如下所示:

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow)
{
if(!shadow)
{
super.draw(canvas, mapView, false);
}
}

感谢 etteyafed - 如果你回答了,我会把分数记在你身上,但我想结束这个。

关于android - 使用带有 MapView 的自定义绘图的奇怪绘图 Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3825358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com