Android动态更改圆圈大小只有一半的圆圈更新正确

Android动态更改圆圈大小只有一半的圆圈更新正确,android,android-canvas,android-maps,Android,Android Canvas,Android Maps,因此,我给了用户控件,使用seekbar在MapView中更改圆覆盖对象的半径 但是,当拖动seekbar以更改圆的半径时,只有圆的底部会平滑更新: 上半部分是圆的半径,下半部分是圆当前的半径。底部部分会平滑地更新(随着seekbar上的进度),但顶部会保持静止半秒左右 以前见过这样的吗?下面是我使用的RadiusOverlay对象的onDraw方法: public void draw(Canvas canvas, MapView mapView, boolean shadow) {

因此,我给了用户控件,使用seekbar在MapView中更改圆覆盖对象的半径

但是,当拖动seekbar以更改圆的半径时,只有圆的底部会平滑更新:

上半部分是圆的半径,下半部分是圆当前的半径。底部部分会平滑地更新(随着seekbar上的进度),但顶部会保持静止半秒左右

以前见过这样的吗?下面是我使用的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);
}

感谢您查看。

因此我将此添加到绘制圆覆盖的方法中:

mController.animateTo(mLocationOverlay.getMyLocation());
其中,
mController
是一个位置控制器,
mLocationOverlay
是一个位置覆盖(我想这有点明显)

无论如何,添加这条线可以使圆平滑地动画。这可能与覆盖层在地图上的工作方式有关,如果它们不居中,它们将被剪裁或其他东西。谁知道呢。但我再次测试了它,去掉了那条线,果然又剪掉了。所以我想这就是解决办法。耸耸肩

如果有人有真正的解释,请随时提供