2011-02-10 94 views
4

我對Java和Android開發還比較陌生,所以我仍然不熟悉可供使用的衆多庫,特別是對於動畫。我來自哪裏(Flash世界),我們可以訪問多個第三方補間引擎,這些引擎讓我們的生活變得非常簡單,當我們想要在不依賴內置Adobe補間API。其中最受歡迎的是Greensock的TweenMax在Java中是否有TweenMax等價物

看看Android本身處理補間的方式,與我以前的習慣相比,它顯得非常麻煩。我很好奇,如果有一個TweenMax相當於Android的庫,那麼使動畫順序同樣易於編寫代碼,並且具有智能智能感知的好處,而不必將它們全部寫入到外部animation.xml文件中res文件夾。

回答

7

對不起,最近回覆到這個主題,但有一個更獨立於框架的答案:Java Universal Tween Engine。

http://code.google.com/p/java-universal-tween-engine/

enter image description here

這個庫開始,以此來模仿任何Java項目TweenMax /精簡版的功能,並最終作爲一個完整的,獨立的,補間引擎。它是爲的Android(無動態分配)進行了優化,但是可以在幾乎每一個Java項目中使用,作爲一個的Swing UIOpenGL的遊戲 ...

你不應該丟失,如果你來自世界TweenMax,因爲基本語法頗爲相似:

Tween.to(myObject, POSITION, 1000).target(20, 30).ease(Elastic.OUT).start(myManager); 

時間表是有些不同,但仍然很容易理解:

Timeline.createSequence() 
    // First, set all objects to their initial positions 
    .push(Tween.set(...)) 
    .push(Tween.set(...)) 
    .push(Tween.set(...)) 

    // Wait 1s 
    .pushPause(1000) 

    // Move the objects around, one after the other 
    .push(Tween.to(...)) 
    .push(Tween.to(...)) 
    .push(Tween.to(...)) 

    // Then, move the objects around at the same time 
    .beginParallel() 
     .push(Tween.to(...)) 
     .push(Tween.to(...)) 
     .push(Tween.to(...)) 
    .end() 

    // And repeat the whole sequence 2 times 
    .repeatYoyo(2, 500) 

    // Let's go! 
    .start(myManager); 

希望幫助:)

1

您不必使用XML文件,您可以使用Animation,AnimationSet和各種Interpolator實現。然而Android 3.0提供了一個功能更加強大的動畫API。

+0

感謝您的提醒。與此同時,我在幾處地方讀到你應該小心使用這些動畫API,因爲它們對CPU徵稅非常激烈。本地Flash Tween API也是如此,這就是爲什麼第三方引擎有如此強大的市場。我認爲這也可能是這種情況......或者他們只是通過不依賴Java來解決問題,而只是簡單地使用NDK呢?不過,我會看看3.0 API。 – scriptocalypse 2011-02-11 04:00:51

+0

這些動畫API沒有太多的工作,第三方引擎不會佔用更少的CPU資源。 – 2011-02-11 06:57:00

1

其實,我想我已經找到了一些接近我所要求的東西。還有的Cocos2D的爲Android端口這裏: Cocos2D for android

這不是完全沒有缺陷(這裏想到粒子系統的居多),但它提供了廣泛的動畫和顯示功能的各種各樣的事情,你會使用Greensock for。它甚至還帶有一個Box2D端口。

+0

僅供參考,這裏有一個最新版本:https://github.com/cocos2d/cocos2d-x,但它使用[NDK](http://developer.android.com/tools/sdk/ndk /index.html#Contents),OP想要使用Java代替。另一種方法(也需要NDK)是Open Frameworks,它有幾個插件可供選擇:ofxTweener,ofxTweenzor,ofxSoso等。 – Gabor 2013-08-06 09:36:46

相關問題