Android属性动画 XML
轉(zhuǎn)載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/118913022
本文出自【趙彥軍的博客】
文章目錄
- 使用XML編寫動畫
使用XML編寫動畫
我們可以使用代碼來編寫所有的動畫功能,這也是最常用的一種做法。不過,過去的補間動畫除了使用代碼編寫之外也是可以使用XML編寫的,因此屬性動畫也提供了這一功能,即通過XML來完成和代碼一樣的屬性動畫功能。
通過XML來編寫動畫可能會比通過代碼來編寫動畫要慢一些,但是在重用方面將會變得非常輕松,比如某個將通用的動畫編寫到XML里面,我們就可以在各個界面當中輕松去重用它。
如果想要使用XML來編寫動畫,首先要在res目錄下面新建一個animator文件夾,所有屬性動畫的XML文件都應該存放在這個文件夾當中。然后在XML文件中我們一共可以使用如下三種標簽:
- 對應代碼中的ValueAnimator
- 對應代碼中的ObjectAnimator
- 對應代碼中的AnimatorSet
那么比如說我們想要實現(xiàn)一個從0到100平滑過渡的動畫,在XML當中就可以這樣寫:
<animator xmlns:android="http://schemas.android.com/apk/res/android"android:valueFrom="0"android:valueTo="100"android:valueType="intType"/>而如果我們想將一個視圖的alpha屬性從1變成0,就可以這樣寫:
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"android:valueFrom="1"android:valueTo="0"android:valueType="floatType"android:propertyName="alpha"/>其實XML編寫動畫在可讀性方面還是挺高的,上面的內(nèi)容相信不用我做解釋大家也都看得懂吧。
另外,我們也可以使用XML來完成復雜的組合動畫操作,比如將一個視圖先從屏幕外移動進屏幕,然后開始旋轉(zhuǎn)360度,旋轉(zhuǎn)的同時進行淡入淡出操作,就可以這樣寫:
<set xmlns:android="http://schemas.android.com/apk/res/android"android:ordering="sequentially" ><objectAnimatorandroid:duration="2000"android:propertyName="translationX"android:valueFrom="-500"android:valueTo="0"android:valueType="floatType" ></objectAnimator><set android:ordering="together" ><objectAnimatorandroid:duration="3000"android:propertyName="rotation"android:valueFrom="0"android:valueTo="360"android:valueType="floatType" ></objectAnimator><set android:ordering="sequentially" ><objectAnimatorandroid:duration="1500"android:propertyName="alpha"android:valueFrom="1"android:valueTo="0"android:valueType="floatType" ></objectAnimator><objectAnimatorandroid:duration="1500"android:propertyName="alpha"android:valueFrom="0"android:valueTo="1"android:valueType="floatType" ></objectAnimator></set></set></set>這段XML實現(xiàn)的效果和我們剛才通過代碼來實現(xiàn)的組合動畫的效果是一模一樣的,每個參數(shù)的含義都非常清楚,相信大家都是一看就懂,我就不再一一解釋了。
最后XML文件是編寫好了,那么我們?nèi)绾卧诖a中把文件加載進來并將動畫啟動呢?只需調(diào)用如下代碼即可:
Animator animator = AnimatorInflater.loadAnimator(context, R.animator.anim_file); animator.setTarget(view); animator.start();調(diào)用AnimatorInflater的loadAnimator來將XML動畫文件加載進來,然后再調(diào)用setTarget()方法將這個動畫設(shè)置到某一個對象上面,最后再調(diào)用start()方法啟動動畫就可以了,就是這么簡單。
總結(jié)
以上是生活随笔為你收集整理的Android属性动画 XML的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android属性动画 监听器、翻转、暂
- 下一篇: Android属性动画 TypeEval