- 旋轉動畫
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"
這 上面兩句指的是組件在高度上不發(fā)生變化
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); //需要動畫的控件去展示效果
- 屬性動畫集
下面是一個屬性動畫的集合,實現(xiàn)了平移和透明度的改變。里面有一個遞歸,一個控件實現(xiàn)該動畫完畢后在讓另一個控件實現(xiàn)該動畫。
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();
}