无法在android中的地图标记上实现插针动画
我正在尝试在地图标记上实现插针效应。我已经实现了下面的代码,但是我找不到标记上出现的动画。谁能一步一步地指导我怎么做无法在android中的地图标记上实现插针动画,android,google-maps,google-maps-markers,android-animation,Android,Google Maps,Google Maps Markers,Android Animation,我正在尝试在地图标记上实现插针效应。我已经实现了下面的代码,但是我找不到标记上出现的动画。谁能一步一步地指导我怎么做 final LatLng latlang = new LatLng(15.4989, 73.8278); final MarkerOptions marker = new MarkerOptions().position(latlang).title("Hello Maps "); mGoogleMap.moveCamera(CameraUpdateFac
final LatLng latlang = new LatLng(15.4989, 73.8278);
final MarkerOptions marker = new MarkerOptions().position(latlang).title("Hello Maps ");
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlang, 17));
mGoogleMap.addMarker(marker);
final long start = SystemClock.uptimeMillis();
Projection proj = mGoogleMap.getProjection();
Point startPoint = proj.toScreenLocation(marker.getPosition());
final LatLng startLatLng = proj.fromScreenLocation(startPoint);
final Interpolator interpolator = new LinearInterpolator();
handler.postDelayed(new Runnable() {
@Override
public void run() {
long elapsed = SystemClock.uptimeMillis() - start;
float t = interpolator.getInterpolation((float) elapsed / 1000);
double lng = t * latlang.longitude + (1 - t) * startLatLng.longitude;
double lat = t * latlang.latitude + (1 - t) * startLatLng.latitude;
Log.i("marker thread","elapsed"+elapsed+",t"+t+"lng,"+lng+",lat"+lat);
marker.position(new LatLng(lat, lng));
}
}, 1000);
您的代码中有3个问题 首先,你的处理程序从不回复自己,它只是在等待一秒钟。要修复它,您必须在处理程序中调用处理程序,如
handler.postDelayed(这是16)代码>直到您的t>=1
(1秒)
其次,您应该等待0.016秒,而不是等待外部处理程序调用整整1秒
最后,您的“marker”实际上是marker选项,因此您的代码应该如下所示:
final MarkerOptions markerOptions = new MarkerOptions().position(latlang).title("Hello Maps ");
final Marker marker = googleMap.addMarker(markerOptions);
而不是使用marker.position
,而是使用marker.setPosition(新LatLng(lat,lng))代码>