- 旋转动画
RotateAnimation rotateAnimation = new RotateAnimation(0,-360,
Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
LinearInterpolator interpolator = new LinearInterpolator(); //匀速器
rotateAnimation.setInterpolator(interpolator);
rotateAnimation.setDuration(6000);
rotateAnimation.setRepeatCount(Animation.INFINITE);
rotateAnimation.setRepeatMode(Animation.RESTART);
mBiggerCircle.setAnimation(rotateAnimation);
rotateAnimation.start();
- AnimationUtils.loadAnimation
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<!--
从中间一条直线展开,从而形成一个页面
android:fromXScale="0.0"
android:toXScale="1.0"
上面两句指的是组件从0.0比例展开到原图的 宽度 大小
android:fromYScale="1.0"
android:toYScale="1.0"
这 上面两句指的是组件在高度上不发生变化
android:pivotX="50%"
这一句指的是以组件宽的中间点作参照点展开
android:duration="400"
最后一句指动作时间为0.4秒(400毫秒)
-->
<scale
android:fromXScale="1.0"
android:fromYScale="0.0"
android:toXScale="1.0"
android:toYScale="1.0"
android:pivotY="50%"
android:duration="2000"
/>
<!--
这样形成的效果就是你想要的展开效果,
在res文件夹下新建anim文件夹,在anime文件夹中新建一个xml,将这段代码复制进去
然后在对应的Activity中用AnimationUtil类load一下就可以用了
-->
</set>
Activity中使用:
Animation animation = AnimationUtils.loadAnimation(PayResultActivity.this, R.anim.expand);
mStuInfoContainer.setAnimation(animation); //需要动画的控件去展示效果
- 属性动画集
下面是一个属性动画的集合,实现了平移和透明度的改变。里面有一个递归,一个控件实现该动画完毕后在让另一个控件实现该动画。
private void startAnimation(View view, int time, int delayTime, int startY, int endY) {
ObjectAnimator alpha = ObjectAnimator.ofFloat(view, "alpha", 0f, 1f);
ObjectAnimator translationY = ObjectAnimator.ofFloat(view, "translationY", startY, endY);
//动画集合,位移和透明动画
AnimatorSet set = new AnimatorSet();
set.playTogether(translationY, alpha);
set.setStartDelay(delayTime);
set.setDuration(time);
set.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
if (index < 1) {
//递归
startAnimation(mMsgInfoContainer, 1000, 0, -100, 0);
// startAnimation(mMsgInfoContainer, 2000, 0, 0, 0);
index++;
}
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
set.start();
}