弹跳动画的实现

来源:互联网 发布:站外优化包括什么 编辑:程序博客网 时间:2024/04/28 05:02
 @Override    public boolean onMarkerClick(final Marker marker) {        // This causes the marker at Perth to bounce into position when it is clicked.        if (marker.equals(mPerth)) {            final Handler handler = new Handler();            final long start = SystemClock.uptimeMillis();            Projection proj = mMap.getProjection();            Point startPoint = proj.toScreenLocation(PERTH);            startPoint.offset(0, -100);            final LatLng startLatLng = proj.fromScreenLocation(startPoint);            final long duration = 1500;            final Interpolator interpolator = new BounceInterpolator();            handler.post(new Runnable() {                @Override                public void run() {                    long elapsed = SystemClock.uptimeMillis() - start;                    float t = interpolator.getInterpolation((float) elapsed / duration);                    double lng = t * PERTH.longitude + (1 - t) * startLatLng.longitude;                    double lat = t * PERTH.latitude + (1 - t) * startLatLng.latitude;                    marker.setPosition(new LatLng(lat, lng));                    if (t < 1.0) {                        // Post again 16ms later.                        handler.postDelayed(this, 16);                    }                }            });        }        // We return false to indicate that we have not consumed the event and that we wish        // for the default behavior to occur (which is for the camera to move such that the        // marker is centered and for the marker's info window to open, if it has one).        return false;    }


原创粉丝点击