Android 使用 XML 来编写动画
使用 XML
来编写动画,画的时间可能比 Java 代码长一点,但是重用起来就轻松很多
对应的 XML
标签分别为
<animator> <objectAnimator> <set>
相关的属性如下
属性 | 说明 |
---|---|
android:ordering | 指定动画的播放顺序: sequentially(顺序执行) together(同时执行) |
android:duration | 动画的持续时间 |
android:propertyName="x" | 这里的x,还记得上面的 "alpha" 吗?加载动画的那个对象里需要定义 getx() 和 setx() 的方法,objectAnimator 就是通过这里来修改对象里的值的 |
android:valueFrom="1" | 动画起始的初始值 |
android:valueTo="0" | 动画结束的最终值 |
android:valueType="floatType" | 变化值的数据类型 |
从 0 到 100 平滑过渡的动画
<?xml version="1.0" encoding="utf-8" ?> <animator xmlns:android="http://schemas.android.com/apk/res/android" android:valueFrom="0" android:valueTo="100" android:valueType="intType" />
将一个视图的 alpha 属性从 1 变成 0
<?xml version="1.0" encoding="utf-8" ?> <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:propertyName="alpha" />
set 动画使用演示
<?xml version="1.0" encoding="utf-8" ?> <set android:ordering="sequentially" > <set> <objectAnimator android:duration="500" android:propertyName="x" android:valueTo="400" android:valueType="intType" /> <objectAnimator android:duration="500" android:propertyName="y" android:valueTo="300" android:valueType="intType" /> </set> <objectAnimator android:duration="500" android:propertyName="alpha" android:valueTo="1f" /> </set>
加载动画文件
AnimatorSet set = (AnimatorSet)AnimatorInflater.loadAnimator(mContext, R.animator.property_animator); animator.setTarget(view); animator.start();