2013-06-24 32 views
9

Tôi muốn thêm vòng tròn hoạt hình vào chế độ xem Google Maps tương tự như vòng kết nối bạn nhìn thấy trên hình ảnh này.Google Maps API Android v2: Hình dung bán kính tìm kiếm với sự trợ giúp của ValueAnimator

enter image description here

Vòng tròn nên được đập từ trung ương đến bán kính lớn nhất cho thấy vị trí hiện tại của người dùng và lĩnh vực tìm kiếm.

Đây là liên quan khối mã

Circle circle = mMap.addCircle(new CircleOptions() 
    .center(new LatLng(lat, lon)) 
    .strokeColor(Color.CYAN).radius(1000)); 
    valueAnimator = new ValueAnimator(); 
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
     @Override 
     public void onAnimationUpdate(ValueAnimator valueAnimator) { 
     float animatedFraction = valueAnimator.getAnimatedFraction(); 
     circle.setRadius(animatedFraction * 1000); 
     circle.setStrokeWidth(1 + animatedFraction * 7); 
     } 
     }); 

Với mã này tôi chỉ có thể nhìn thấy tĩnh đột quỵ vòng tròn mà không cần bất kỳ hình ảnh động.

Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn trước.

Trả lời

28

Đơn giản chỉ cần :)

final Circle circle = MAP.addCircle(new CircleOptions().center(EGYPT) 
      .strokeColor(Color.CYAN).radius(100)); 

    ValueAnimator vAnimator = new ValueAnimator(); 
    vAnimator.setRepeatCount(ValueAnimator.INFINITE); 
    vAnimator.setRepeatMode(ValueAnimator.RESTART); /* PULSE */ 
    vAnimator.setIntValues(0, 100); 
    vAnimator.setDuration(1000); 
    vAnimator.setEvaluator(new IntEvaluator()); 
    vAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); 
    vAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
     @Override 
     public void onAnimationUpdate(ValueAnimator valueAnimator) { 
      float animatedFraction = valueAnimator.getAnimatedFraction(); 
      // Log.e("", "" + animatedFraction); 
      circle.setRadius(animatedFraction * 100); 
     } 
    }); 
    vAnimator.start(); 
+1

Đơn giản chỉ cần làm việc :) Cảm ơn! – Juniper

+0

Hoạt động cho đến khi các điểm đánh dấu được hiển thị. Khi các điểm đánh dấu được hiển thị, hoạt ảnh sẽ biến mất. Không có vấn đề gì tôi gọi là 'vAnimator.start();' nó không được hiển thị nữa nhưng đồng thời tôi có thể thấy trong LogCat mà nó đang xử lý. Bạn có bất kỳ giả định nào tại sao hoạt ảnh không được hiển thị với các điểm đánh dấu không? – Juniper

+1

Vòng tròn của tôi có màu tô, nhưng nó biến mất khi hình động. Tôi nên làm gì? – DixieFlatline

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