蜂鸟视图室内地图 Android SDK

地图动画 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();