美文网首页ANTVR_Android SDK使用文档
第四章——Animation动画模块使用

第四章——Animation动画模块使用

作者: SkySnow_TX | 来源:发表于2016-11-05 11:05 被阅读0次

    4. Animation 动画模块的使用。

    4.1 动画的介绍。

    代码清单:
    Animation3D mTranslateAnimation3D = new TranslateAnimation3D(fromPoint,toPoint);
    mTranslateAnimation3D.setDurationMilliseconds(allTime);
    mTranslateAnimation3D.setRepeatMode(Animation.RepeatMode.NONE);
    mTranslateAnimation3D.setTransformable3D(aNode);
    mTranslateAnimation3D.registerListener(new IAnimationListener() {    
            @Override    
            public void onAnimationEnd(Animation animation) {    }    
            @Override    
            public void onAnimationRepeat(Animation animation) {    }    
            @Override    
            public void onAnimationStart(Animation animation) {    }    
            @Override    public void onAnimationUpdate(Animation animation, double interpolatedTime) {    }
    });
    mTranslateAnimation3D.play();
    
    说明:这里的动画的一些接口在第一章中对3DUI介绍的时候已经介绍过了不在赘述,这是一个构建一个动画的步骤,其接口详情,这里不做赘述了,因为其他动画的创建与位移动画的创建类似,所以知道位移动画的创建流程后,就可以创建其他类型的动画了。
    1. updataAnimation3DPosition(MathC.Vector fromPosition, MathC.Vector toPosition)在位移动画里面,可以动态的更新起始动画位置与动画目标点位置。
      @param fromPosition toPosition 起始动画位置,终止动画位置。
    说明:这个动态更新动画的起止位置的,只能在位移动画中有这个接口,其他动画类型没有这个接口。
    1. 动画中播放类型的一个枚举类功能。
      public enum RepeatMode{
      NONE , 只播放一次
      INFINITE//无限 ,
      RESTART//重新启动 ,
      REVERSE//相反的 ,
      REVERSE_INFINITE;//相反重复的
      }
    2. reset() 重置动画的接口,在动画播放完,调用这个接口,则将动画的数据恢复为初始状态。
    3. setDelayDelta(double delay)设置动画的延迟时间。视需求而使用。
    4. setInterpolator(Interpolator interpolator)设置线性动画,该接口调用Android内置的线性计算函数来计算平滑的数值。使动画更加平滑。
    5. setRepeatCount(int repeatCount)设置动画重复播放的次数。
    6. unregisterListener(IAnimationListener animationListener)撤销动画监听方法。
    7. isFirstStart() 是否是第一次启动,返回一个布尔值。

    注意:现在动画包括有位移动画,绕某个点旋转动画,绕自身的旋转动画,贝塞尔曲线动画。位移动画跟贝塞尔动画可以添加到VRLayout中,绕某点动画以及绕自身旋转的动画不支持VRLayout。

    4.2 AnimationGroup动画的介绍。

    代码清单:
      AnimationGroup mAnimationGroup = new AnimationGroup();
      mAnimationGroup.setRepeatMode(mAnimationModel);
    
      TranslateAnimation3D mTrans = new TranslateAnimation3D(fromPosition,transToPoint);
      mTrans.setDurationMilliseconds(time);
      mTrans.setRepeatMode(mAnimationModel);
      mTrans.setTransformable3D(aNode);
    
      mAnimationGroup.addAnimation(mTrans);
      registerAnimation(mAnimationGroup);
    
    1. 这是AnimationGroup的使用案例,其中创建一个对象,然后设置一些属性,这些属性与单个的动画是类似的,然后将创建好的单个的动画类型添加到这个AnimationGroup中,这样就可以直接使用AnimationGroup直接来创建管理动画了,或者播放或者停止等。也可以为一个模型添加多个动画。

    说明:自己实在不明白了,可以研究一下我写的那些3D视频UI的使用过程,这个还是可以看的懂的,现在的需求,接口基本已经实现了,上层的一些逻辑自己实现就可以了。

    相关文章

      网友评论

        本文标题:第四章——Animation动画模块使用

        本文链接:https://www.haomeiwen.com/subject/zvzwuttx.html