android:shareInterpolator=[“true” | “false”] >
<alpha
android:fromAlpha=“float”
android:toAlpha=“float” />
<scale
android:fromXScale=“float”
android:toXScale=“float”
android:fromYScale=“float”
android:toYScale=“float”
android:pivotX=“float”
android:pivotY=“float” />
<translate
android:fromXDelta=“float”
android:toXDelta=“float”
android:fromYDelta=“float”
android:toYDelta=“float” />
<rotate
android:fromDegrees=“float”
android:toDegrees=“float”
android:pivotX=“float”
android:pivotY=“float” />
…
</set
<set> <alpha> <scale> <translate> <rotate>
这些标签都可以作为根标签,代表一种动画,其中<set>
可以包含以上所有标签,我们可以通过 <set>
和其他标签组合设计多种多样的动画效果。
下面逐个解析标签的作用:
<set>
代表一个AnimationSet
属性:
- android:interpolator (插值器)
- android:shareInterpolator(是否在所有的元素中分享插值器)
<alpha>
代表一个AlphaAnimation,淡入淡出动画
属性:
- android:fromAlpha(开始透明度,0.0-完全透明 1.0-不完全透明)
- android:toAlpha(结束透明度,0.0-完全透明 1.0-不完全透明)
<scale>
代表一个ScaleAnimation,缩放动画
属性:
- android:fromXScale(开始时X方向上相对自身的缩放比例,1.0表示没有变化)
- android:toXScale(结束时X方向上相对自身的缩放比例)
- android:fromYScale(开始时Y方向上相对自身的缩放比例)
- android:toYScale(结束时Y方向上相对自身的缩放比例)
- android:pivotX(缩放X轴位置,50表示绝对位置,50%表示相对自身,50%p表示相对父控件)
- android:pivotY(缩放Y轴位置,取值同上)
<translate>
代表一个TranslateAnimation,偏移动画
- android:fromXDelta(动画起始时 X坐标上的位置 )
- android:toXDelta(动画结束时 X坐标上的位置)
- android:fromYDelta(动画起始时 Y坐标上的位置 )
- android:toYDelta(动画结束时 Y坐标上的位置 )
取值举例:
android:toXDelta=”100%”,表示自身的100%,也就是从View自己的位置开始
android:toXDelta=”80%p”,表示父层View的80%,是以它父层View为参照的
<rotate>
代表一个RotateAnimation, 旋转动画
属性:
- android:fromDegrees(动画开始时角度)
- android:toDegrees(动画结束时角度)
- android:pivotX(旋转中心的X坐标)
- android:pivotY(旋转中心的Y坐标)
补间动画例子:
<set xmlns:android=“http://schemas.android.com/apk/res/android”
android:shareInterpolator=“false”>
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale=“1.0”
android:toXScale=“1.4”
android:fromYScale=“1.0”
android:toYScale=“0.6”
android:pivotX=“50%”
android:pivotY="5
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
0%"
android:fillAfter=“false”
android:duration=“700” />
<set
android:interpolator="@android:anim/accelerate_interpolator"
android:startOffset=“700”>
<scale
android:fromXScale=“1.4”
android:toXScale=“0.0”
android:fromYScale=“0.6”
android:toYScale=“0.0”
android:pivotX=“50%”
android:pivotY=“50%”
android:duration=“400” />
<rotate
android:fromDegrees=“0”
android:toDegrees="-45"
android:toYScale=“0.0”
android:pivotX=“50%”
android:pivotY=“50%”
android:duration=“400” />
代码中使用:
ImageView image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);
Frame Animation
===============
文件路径:res/drawable/filename.xml
这样的一个资源指向一个AnimationDrawable对象
资源引用:
- Java中引用:R.drawable.filename
- XML中引用:@drawable/filename
语法