溫馨提示×

Android開場動畫類完整實現代碼

小云
131
2023-08-08 14:07:07
欄目: 編程語言

以下是一個簡單的Android開場動畫類的完整實現代碼:

import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
public class SplashAnimation {
private static final int ANIMATION_DURATION = 1000;
public static void animate(Context context, View view, AnimatorListener listener) {
ObjectAnimator fadeIn = ObjectAnimator.ofFloat(view, "alpha", 0f, 1f);
fadeIn.setInterpolator(new DecelerateInterpolator());
fadeIn.setDuration(ANIMATION_DURATION / 2);
ObjectAnimator fadeOut = ObjectAnimator.ofFloat(view, "alpha", 1f, 0f);
fadeOut.setInterpolator(new AccelerateInterpolator());
fadeOut.setDuration(ANIMATION_DURATION / 2);
fadeOut.setStartDelay(ANIMATION_DURATION / 2);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playSequentially(fadeIn, fadeOut);
animatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
// 動畫開始時的回調
}
@Override
public void onAnimationEnd(Animator animation) {
// 動畫結束時的回調
if (listener != null) {
listener.onAnimationEnd();
}
}
@Override
public void onAnimationCancel(Animator animation) {
// 動畫取消時的回調
}
@Override
public void onAnimationRepeat(Animator animation) {
// 動畫重復時的回調
}
});
animatorSet.start();
}
public interface AnimatorListener {
void onAnimationEnd();
}
}

這個動畫類實現了一個簡單的漸隱漸現的開場動畫??梢酝ㄟ^調用animate方法來啟動動畫,傳入相應的ContextView對象,并可以通過AnimatorListener回調監聽動畫結束事件。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女