在res的anim目录下新建文件
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator" android:duration="2000"> <!--透明动画 从不透明变为透明--> <alpha android:fromAlpha="1" android:toAlpha="0" /> <!--缩放动画 x y 方向从1倍缩放到1.5倍 以自己中心为缩放点 android:fillAfter="true" 将最后的结果定于结束时的样子 android:fillBefore="true" 将最后的结果定于开始时的样子 android:repeatCount="100" 重复次数为100次 如果为负数的话 则无限执行 android:repeatMode="reverse" 缩放到1.5倍后再慢慢缩放回去 --> <scale android:fromXScale="1" android:toXScale="1.5" android:fromYScale="1" android:toYScale="1.5" android:pivotX="50%" android:pivotY="50%" android:fillAfter="true" android:repeatCount="100" android:repeatMode="reverse"/> <!--移动动画 从当前位置往右移动10像素 fromXDelta起始点距离当先x坐标的距离 fromYDelta起始点距离当先Y坐标的距离--> <translate android:fromXDelta="0" android:toXDelta="10" android:fromYDelta="0" android:toYDelta="0"/> <!--旋转动画 以自己中心为旋转点 从0旋转到360度--> <rotate android:fromDegrees="0" android:toDegrees="360" android:pivotY="50%" android:pivotX="50%" /> </set>
动画插补器:
AccelerateInterpolator:动画从开始到结束,变化率是一个加速的过程。
DecelerateInterpolator:动画从开始到结束,变化率是一个减速的过程。
CycleInterpolator:动画从开始到结束,变化率是循环给定次数的正弦曲线。
AccelerateDecelerateInterpolator:动画从开始到结束,变化率是先加速后减速的过程。
LinearInterpolator:动画从开始到结束,变化率是线性变化。
代码中调用:
Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.set);
btnSend.startAnimation(animation);