地图动画
Fengmap Android SDK 提供动画模块,现支持多种动效。比如:弹簧效果、先加速后减速、减速、加速等。
地图移动例子
下面将以地图移动动画为例,讲述动画的使用方法,用户可以参考,实现自己的需求。
// 先从缓存里面获取动画对象
FMValueAnimation va = FMAnimationFactory.getFactory().getFMValueAnimation("AnimationName");
if (va == null) {
// 若缓存里面不存在创建新的对象
va = FMAnimationFactory.getFactory().createFMValueAnimation("AnimationName");
// 设置插值为 弹簧效果 的插值
va.setInterpolator(new FMBounceInterpolator());
// 设置动画的持续时间
va.setDuration(1000);
// 设置动画的监听接口
va.setOnFMAnimationListener(new FMAnimation.OnFMAnimationListener() {
@Override
public void beforeAnimation(String pName) {
// 动画开始前
}
@Override
public void updateAnimationFrame(String pName, Object pLastValue, Object pCurrentValue) {
// 动画更新
FMMapCoord from = (FMMapCoord) pLastValue;
FMMapCoord to = (FMMapCoord) pCurrentValue;
// 不使用方法内置动画
mMap.move(from, to, false);
// 更新
mMap.updateMap();
}
@Override
public void afterAnimation(String pName) {
// 动画结束后
// 可以选择销毁对象
FMAnimationFactory.getFactory().destroyFMValueAnimation(pName);
}
});
}
// 设置开始位置和结束位置
va.ofPosition(start, end);
// 开始动画
va.start();