そのため、シークバーを使用して MapView 内の円オーバーレイ オブジェクトの半径を変更するユーザー コントロールを提供しました。
ただし、シークバーをドラッグして円の半径を変更すると、円の下部のみがスムーズに更新されます。
上半分は円の半径で、下半分は現在の円の半径です。下部は (シークバーの進行状況に合わせて) スムーズに更新されますが、上部は 0.5 秒ほど静止したままです。
このようなものを見たことがありますか?私が使用している RadiusOverlay オブジェクトの onDraw メソッドは次のとおりです。
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
super.draw(canvas, mapView, shadow);
Point point = new Point();
Projection projection = mapView.getProjection();
projection.toPixels(mGeoPoint, point);
float projectedRadius = projection.metersToEquatorPixels((float)(mRadius * 1609.3d));
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setARGB(50, 41, 166, 247);
paint.setAntiAlias(true);
canvas.drawCircle((float)point.x, (float)point.y, projectedRadius, paint);
}
ご覧いただきありがとうございます。