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介紹的時候已經介紹過了不在贅述袜匿,這是一個構建一個動畫的步驟,其接口詳情稚疹,這里不做贅述了居灯,因為其他動畫的創(chuàng)建與位移動畫的創(chuàng)建類似,所以知道位移動畫的創(chuàng)建流程后内狗,就可以創(chuàng)建其他類型的動畫了怪嫌。
- updataAnimation3DPosition(MathC.Vector fromPosition, MathC.Vector toPosition)在位移動畫里面,可以動態(tài)的更新起始動畫位置與動畫目標點位置柳沙。
@param fromPosition toPosition 起始動畫位置岩灭,終止動畫位置。
說明:這個動態(tài)更新動畫的起止位置的赂鲤,只能在位移動畫中有這個接口噪径,其他動畫類型沒有這個接口。
- 動畫中播放類型的一個枚舉類功能数初。
public enum RepeatMode{
NONE , 只播放一次
INFINITE//無限 ,
RESTART//重新啟動 ,
REVERSE//相反的 ,
REVERSE_INFINITE;//相反重復的
}
- reset() 重置動畫的接口找爱,在動畫播放完,調用這個接口妙真,則將動畫的數(shù)據(jù)恢復為初始狀態(tài)缴允。
- setDelayDelta(double delay)設置動畫的延遲時間。視需求而使用珍德。
- setInterpolator(Interpolator interpolator)設置線性動畫练般,該接口調用Android內置的線性計算函數(shù)來計算平滑的數(shù)值。使動畫更加平滑锈候。
- setRepeatCount(int repeatCount)設置動畫重復播放的次數(shù)薄料。
- unregisterListener(IAnimationListener animationListener)撤銷動畫監(jiān)聽方法。
- isFirstStart() 是否是第一次啟動泵琳,返回一個布爾值摄职。
注意:現(xiàn)在動畫包括有位移動畫,繞某個點旋轉動畫获列,繞自身的旋轉動畫谷市,貝塞爾曲線動畫。位移動畫跟貝塞爾動畫可以添加到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)巩梢;
- 這是AnimationGroup的使用案例创泄,其中創(chuàng)建一個對象艺玲,然后設置一些屬性,這些屬性與單個的動畫是類似的鞠抑,然后將創(chuàng)建好的單個的動畫類型添加到這個AnimationGroup中饭聚,這樣就可以直接使用AnimationGroup直接來創(chuàng)建管理動畫了搁拙,或者播放或者停止等。也可以為一個模型添加多個動畫端幼。
說明:自己實在不明白了礼烈,可以研究一下我寫的那些3D視頻UI的使用過程,這個還是可以看的懂的庭呜,現(xiàn)在的需求募谎,接口基本已經實現(xiàn)了阴汇,上層的一些邏輯自己實現(xiàn)就可以了。
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者