0

我的 MapView 包含由 addView() 和 LayoutParams 添加的子视图:

new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT, geoPoint, 0, 0, MapView.LayoutParams.BOTTOM | MapView.LayoutParams.LEFT)

我可以从屏幕上获得我的观点:

Point p1 = mapView.getProjection().toPixels(geoPoint, null);

当 geoPoint 更改时,我删除 mapView 的所有子项,然后使用新的 LayoutParams(基于新的 geoPoint)添加我的视图并在屏幕上获取新点:

Point p2 = mapView.getProjection().toPixels(newGeoPoint, null);

现在我需要将视图从 p1 转换为 p2,我尝试:

Animation animation = new TranslateAnimation(
                Animation.ABSOLUTE, p1.x, 
                Animation.ABSOLUTE, p2.x, 
                Animation.ABSOLUTE, p1.y, 
                Animation.ABSOLUTE, p2.y);
animation.setDuration(1500);
myView.startAnimation(animation);

动画播放但从错误的点到错误的点。

如何制作从 p1 到 p2 的正确翻译动画。

4

1 回答 1

1

尝试这个:

Animation animation = new TranslateAnimation(0, p1.x - p2.x, 0, p1.y - p2.y);
animation.setDuration(1500);
myView.startAnimation(animation);

最后不要忘记设置你的点的新位置,否则动画完成后它会回到原来的位置。

于 2012-11-21T12:36:26.217 回答