編輯:關於android開發
今日,在學習AnimatorSet時,使用play、with、after、before時,代碼書寫如下:
ObjectAnimator animator1 = ObjectAnimator.ofFloat(v,"translationX",300f); ObjectAnimator animator2 = ObjectAnimator.ofFloat(v,"scaleX",1f,0f,1f); ObjectAnimator animator3 = ObjectAnimator.ofFloat(v,"scaleY",1f,0f,1f); AnimatorSet set = new AnimatorSet(); set.setDuration(1000); set.play(animator1).after(animator2).before(animator3).with(animator2); set.start();
運行代碼時,報錯,錯誤報告如下:
12-12 16:26:18.210 28528-28528/com.zhangmiao.animationdemo E/AndroidRuntime: FATAL EXCEPTION: main Process: com.zhangmiao.animationdemo, PID: 28528 java.lang.IllegalStateException: Circular dependencies cannot exist in AnimatorSet at android.animation.AnimatorSet.sortNodes(AnimatorSet.java:921) at android.animation.AnimatorSet.start(AnimatorSet.java:539) at com.zhangmiao.animationdemo.ObjectAnimatorDemo.onClick(ObjectAnimatorDemo.java:82) at android.view.View.performClick(View.java:4868) at android.view.View$PerformClick.run(View.java:20294) at android.os.Handler.handleCallback(Handler.java:815) at android.os.Handler.dispatchMessage(Handler.java:104) at android.os.Looper.loop(Looper.java:192) at android.app.ActivityThread.main(ActivityThread.java:5718) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:975) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)
然後,我將set.play(animator1).after(animator2).before(animator3).with(animator2);代碼修改為set.play(animator1);這時並不會報錯,我依次添加動畫,當添加到set.play(animator1).after(animator2).before(animator3).with(animator2);時,才會報錯,所以是最後一個with(animator2)有問題,然後,我又添加了一個動畫
ObjectAnimator animator4 = ObjectAnimator.ofFloat(v,"scaleY",1f,0f,1f);
將set.play(animator1).after(animator2).before(animator3).with(animator2);修改為
set.play(animator1).after(animator2).before(animator3).with(animator4);
代碼就不會報錯了。
所以,得到的結論是:
AnimatorSet的play、with、before、after函數不可復用同一個Animator,如果需要使用同樣的Animator,可以創建多個相同動畫的Animator,然後分別使用這多個動畫即可。
JSON解析和XML解析對比,JSON解析XML解析 JSON解析和XML解析是較為普遍的兩種解析方式,其中JSON解析的市場分額更大
PyQt5系列教程(五)制作fastboot燒寫器軟硬件環境Windows 7Python 3.4.2PyQt 5.5.1PyCharm 5.0.2前言fastboot是
android 之 spinner的簡單使用,androidspinner先看spinner的效果圖: 代碼: MainActivity package
AndroidStudio項目提交(更新)到github最詳細步驟 在使用studio開發的項目過程中有時候我們想將項目發布到github上,以前都是用一種比較麻煩的方式