2012-08-23 27 views
5

Vì vậy, tôi đã cung cấp cho người dùng các điều khiển để sử dụng thanh tìm kiếm để thay đổi bán kính của đối tượng lớp phủ vòng tròn trong MapView.Android Tự động thay đổi kích thước vòng tròn chỉ một nửa vòng tròn cập nhật chính xác

Tuy nhiên, khi bạn kéo seekbar để thay đổi bán kính của vòng tròn, chỉ có phần dưới cùng của nó cập nhật thông suốt:

WRONG

Nửa đầu là những gì các bán kính của vòng tròn và đáy là nơi bán kính của vòng tròn hiện tại. Phần dưới cùng cập nhật thông suốt (cùng với tiến trình trên thanh tìm kiếm), nhưng phần trên vẫn giữ nguyên trong nửa giây.

Bạn đã từng thấy điều này trước đây chưa? Đây là phương thức onDraw từ đối tượng RadiusOverlay tôi đang sử dụng:

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); 
} 

Cảm ơn bạn đã xem.

Trả lời

3

Vì vậy, tôi thêm này vào phương pháp mà lôi kéo lớp phủ hình tròn:

mController.animateTo(mLocationOverlay.getMyLocation()); 

nơi mController là một LocationController và mLocationOverlay là một LocationOverlay (tôi đoán đó là một chút rõ ràng).

Anyways thêm dòng đó làm vòng tròn hoạt hình trơn tru. Nó có thể là một cái gì đó để làm với cách lớp phủ làm việc trên bản đồ, nếu họ không tập trung họ sẽ clip hoặc một cái gì đó. Ai biết. Nhưng tôi đã thử nghiệm nó một lần nữa bằng cách loại bỏ dòng đó và chắc chắn nó cắt bớt một lần nữa. Vì vậy, tôi đoán đó là giải pháp. nhún vai

Nếu bất kỳ ai có lời giải thích thực sự, vui lòng cung cấp.

Các vấn đề liên quan