欧美人两个人激情的免费视频_国产亚洲人成网站在线观看不卡_直接看毛片_免费乱理伦片在线观看app

十三年專注于網站建設與互聯網應用開發,低調、有情懷的網絡應用服務商!
南昌百恒科技微信公眾號 掃一掃關注
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關注百恒科技微信公眾號

安卓開發之播放多個動畫詳解

百恒網絡 2018-12-14 16:28:38 2862
? ? ? ?有時候,在南昌APP開發項目中需要同時執行一些動畫。其實這很簡單,同時調用start()方法就行了。

? ? ? ?但是,如果要像編排舞步那樣編排多個動畫的執行,事情就沒那么簡單了。例如,為實現完整的日落景象,太陽落下去之后,天空應該從橘黃色再轉為午夜藍。我們可以使用AnimatorListener,AnimatorListener會讓你知道動畫什么時候結束。這樣,執行完第一個動畫,我們就可以接力執行第二個夜空變化的動畫。

? ? ? ?然而,理論分析很簡單,實際去做的話,少不了要準備多個監ting器,這也很麻煩。好在Android還設計了方便又簡單的AnimatorSet。下面百恒網絡就來帶大家了解一下。

? ? ? ?首先,如下代碼清單所示,刪除掉原來的動畫啟動代碼,并添加夜空變化的動畫代碼。

? ? ? ?創建夜空動畫(SunsetFragment.java)
? ? ? ?private void startAnimation() {
? ? ? ?...
? ? ? ?sunsetSkyAnimator.setEvaluator(new ArgbEvaluator());
? ? ? ?ObjectAnimator nightSkyAnimator = ObjectAnimator
? ? ? ?.ofInt(mSkyView, "backgroundColor", mSunsetSkyColor, mNightSkyColor)
? ? ? ?.setDuration(1500);
? ? ? ?nightSkyAnimator.setEvaluator(new ArgbEvaluator());
? ? ? ?heightAnimator.start();
? ? ? ?sunsetSkyAnimator.start();
? ? ? ?}

? ? ? ?然后,創建并執行一個動畫集,如下代碼清單所示。

? ? ? ?創建動畫集(SunsetFragment.java)
? ? ? ?private void startAnimation() {
? ? ? ?...
? ? ? ?ObjectAnimator nightSkyAnimator = ObjectAnimator
? ? ? ?.ofInt(mSkyView, "backgroundColor", mSunsetSkyColor, mNightSkyColor)
? ? ? ?.setDuration(1500);
? ? ? ?nightSkyAnimator.setEvaluator(new ArgbEvaluator());
? ? ? ?AnimatorSet animatorSet = new AnimatorSet();
? ? ? ?animatorSet
? ? ? ?.play(heightAnimator)
? ? ? ?.with(sunsetSkyAnimator)
? ? ? ?.before(nightSkyAnimator);
? ? ? ?animatorSet.start();
? ? ? ?}

? ? ? ?說白了,AnimatorSet就是可以放在一起執行的動畫集??梢杂煤脦追N方式創建動畫集,但使用上述代碼中的play(Animator)方法更容易。

? ? ? ?調用play(Animator)方法之前,要先創建一個AnimatorSet.Builder對象,然后利用它創建鏈式方法調用。傳入play(Animator)方法的Animator是鏈首。所以,以上代碼中的鏈式調用就可以這樣解讀:協同執行heightAnimator和sunsetSkyAnimator動畫;在nightSkyAnimator之前執行heightAnimator動畫。在實際南昌APP開發中,可能會用到更復雜的動畫集。這也沒問題,需要的話,可以多次調用play(Animator)方法。

? ? ? ?再次運行Sunset應用,就可以欣賞這美麗的動畫了。
400-680-9298,0791-88117053
掃一掃關注百恒網絡微信公眾號

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
備案專線 備案專線
 
售后服務 售后服務
 
×