一下是高德 android sdk 3ddemo中MarkerActivity中的 marker跳动的代码
/**
* marker点击时跳动一下
*/
public void jumpPoint(final Marker marker) {
final Handler handler = new Handler();
final long start = SystemClock.uptimeMillis();
Projection proj = aMap.getProjection();
Point startPoint = proj.toScreenLocation(Constants.XIAN);
startPoint.offset(0, -100);
final LatLng startLatLng = proj.fromScreenLocation(startPoint);
final long duration = 1500;
final Interpolator interpolator = new BounceInterpolator();//the point
handler.post(new Runnable() {
@Override
public void run() {
long elapsed = SystemClock.uptimeMillis() - start;
float t = interpolator.getInterpolation((float) elapsed
/ duration);
double lng = t * Constants.XIAN.longitude + (1 - t)
* startLatLng.longitude;//LatLng XIAN = new LatLng(34.341568, 108.940174);
double lat = t * Constants.XIAN.latitude + (1 - t)
* startLatLng.latitude;
mark

本文探讨了在Android高德地图SDK中实现Marker动画效果的问题,特别是如何改变Marker的移动方式以达到类似苹果的平滑减速效果。通过分析源代码,发现关键在于Interpolator的使用,如AccelerateInterpolator和DecelerateInterpolator。作者详细解释了不同Interpolator的作用,并最终通过调整AccelerateInterpolator实现了预期的动画效果。
最低0.47元/天 解锁文章
621

被折叠的 条评论
为什么被折叠?



