8

Có ai có ý tưởng về cách triển khai hoạt ảnh này có thể thực hiện được trong bản đồ google api v2 hay không. Check out this here. Tôi muốn biết cách thực hiện điều này. Vui lòng cho tôi biết nếu có ai có bất kỳ mã mẫu nào về vấn đề này.Google Map v2 Marker Animation

Xin cảm ơn trước.

+0

@GrlsHu. xin chào .. tôi cần sự giúp đỡ của bạn xin vui lòng – Piyush

+0

Để làm hoạt hình tuyến đường polyline github.com/amalChandran/google-maps-route-animation – amalBit

Trả lời

9

Tôi tìm thấy một solution mà làm việc cho tôi:

final LatLng target = NEW_LOCATION; 

final long duration = 400; 
final Handler handler = new Handler(); 
final long start = SystemClock.uptimeMillis(); 
Projection proj = map.getProjection(); 

Point startPoint = proj.toScreenLocation(marker.getPosition()); 
final LatLng startLatLng = proj.fromScreenLocation(startPoint); 

final Interpolator interpolator = new LinearInterpolator(); 
handler.post(new Runnable() { 
    @Override 
    public void run() { 
     long elapsed = SystemClock.uptimeMillis() - start; 
     if (elapsed > duration) { 
      elapsed = duration; 
     } 
     float t = interpolator.getInterpolation((float) elapsed/duration); 
     double lng = t * target.longitude + (1 - t) * startLatLng.longitude; 
     double lat = t * target.latitude + (1 - t) * startLatLng.latitude; 
     marker.setPosition(new LatLng(lat, lng)); 
     if (t < 1.0) { 
      // Post again 10ms later. 
      handler.postDelayed(this, 10); 
     } else { 
      // animation ended 
     } 
    } 
}); 
+0

Interpolator Interpolator = new LinearInterpolator(); Lỗi tạo dòng này ... "Loại không tương thích" –

+0

đảm bảo bạn nhập: nhập android.view.animation.Interpolator; nhập android.view.animation.LinearInterpolator; Và không phải là Interpolator khác. – apmartin1991

+0

tôi đã tìm thấy một lỗi. Là cần thiết để thêm video này hai dòng: \t \t \t \t \t \t if (trôi qua> thời gian) \t \t \t \t \t \t \t trôi qua = thời gian; – Master

7

Bạn được quyền thay đổi vị trí của Marker tại bất kỳ thời điểm nào bằng cách gọi setPosition(). Bạn được quyền thay đổi vị trí của "máy ảnh" (ví dụ: trung tâm bản đồ và mức thu phóng) tại bất kỳ điểm nào bằng cách áp dụng đối tượng CameraUpdate sử dụng moveTo() hoặc animateTo() trên GoogleMap. Kết hợp chúng với vòng lặp thời gian ánh sáng (ví dụ: sử dụng postDelayed()) sẽ cho phép bạn đạt được hiệu ứng hoạt ảnh tương tự.

+0

Bạn có thể vui lòng cung cấp một số mã để tôi có thể có ý tưởng tốt hơn về triển khai hay không. Tôi đã cố gắng để làm sống động bản đồ bằng cách sử dụng phương pháp CameraUpdateFactory.scrollBy .. nó làm việc tốt ngay cả. Nhưng không tìm thấy bất kỳ cách nào để làm động trên con đường trên bản đồ. – GrIsHu

+1

@Grishu: "Bạn có thể vui lòng cung cấp một số mã để tôi có thể có được ý tưởng tốt hơn về việc triển khai" - Tôi không có bất kỳ vấn đề nào xung quanh việc xử lý kịch bản của bạn. "Nhưng không tìm thấy bất kỳ cách nào để làm động trên con đường trên bản đồ" - bạn phải tự tìm "con đường trên bản đồ", sử dụng một số dịch vụ Web (có lẽ), sau đó cập nhật vị trí 'Marker' thành các điểm khác nhau dọc theo con đường đó. – CommonsWare

+0

Ok, Cảm ơn sự giúp đỡ của bạn. – GrIsHu

0

Tin tuyệt vời là Google Map API v2 cung cấp các điều khiển Camera mới. Bạn có thể kiểm tra các tính năng mới và cách sử dụng chúng trực tiếp here trên kênh Youtube của nhóm nhà phát triển Android.

Nó cũng cung cấp hình ảnh động, nghiêng, mang ... nhưng tôi cho rằng video rất chi tiết và cũng nói về các ứng dụng như trong ví dụ của bạn.

Vui chơi và cung cấp cho tôi liên kết khi bạn hoàn thành ứng dụng của mình.

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