質問

私は自分の引き出し可能を追加してのMapView上に一連のオーバーレイでそれを使用しようとしています。描画可能では基本的に黒のアウトラインと中間の数字を持つ丸いボックスです。

私はそれができるかと思っていますので、 -

私はコードの下を使用してこれを達成するために管理している、しかし私は確かに私が描いたとは思わない、私のボックスの左にある旗のように見えるものがあります。

これは画像の例である:代替テキスト

<時間>

編集 - これは円が描かれている場合、何が起こるかです: altテキスト

<時間>

私のコードは以下の通りです:

カスタムDrawableのます:

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のおかげ - あなたは答えていた場合、私はポイントをご入金しているだろうが、私はこのオフを閉じたいと思った。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top