2016-04-12 13 views

cevap

2

Hiçbir şey denemek olmadığını düşünsek bile, sana Bunu başarmak için büyük bir yöntem vermek ..

public static void animateMarker(final GoogleMap map, final Marker marker, final LatLng toPosition, 
          final boolean hideMarker) { 
    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 long duration = 500; 

    final Interpolator interpolator = new LinearInterpolator(); 

    handler.post(new Runnable() { 
     @Override 
     public void run() { 
      long elapsed = SystemClock.uptimeMillis() - start; 
      float t = interpolator.getInterpolation((float) elapsed/duration); 
      double lng = t * toPosition.longitude + (1 - t) * startLatLng.longitude; 
      double lat = t * toPosition.latitude + (1 - t) * startLatLng.latitude; 

      marker.setPosition(new LatLng(lat, lng)); 

      if (t < 1.0) { 
       // Post again 16ms later. 
       handler.postDelayed(this, 16); 
      } else { 
       if (hideMarker) { 
        marker.setVisible(false); 
       } else { 
        marker.setVisible(true); 
       } 
      } 
     } 
    }); 
} 

Enjoy it Ben iyi bir ruh halinde değilim sırf!

İlgili konular