我的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制作正确的翻译动画。
答案 0 :(得分:1)
试试这个:
Animation animation = new TranslateAnimation(0, p1.x - p2.x, 0, p1.y - p2.y);
animation.setDuration(1500);
myView.startAnimation(animation);
最后不要忘记设置你的点的新位置,否则当动画结束时它会转回到前位置。