老式電視機關閉的時候畫面一閃消失的那個效果:
首先創建一個TVOffAnimation繼承於Animation:
- import Android.graphics.Matrix;
- import android.view.animation.AccelerateDecelerateInterpolator;
- import android.view.animation.Animation;
- import android.view.animation.Transformation;
-
- public class TVOffAnimation extends Animation {
-
- private int halfWidth;
- private int halfHeight;
-
- @Override
- public void initialize(int width, int height, int parentWidth,
- int parentHeight) {
-
- super.initialize(width, height, parentWidth, parentHeight);
- setDuration(500);
- setFillAfter(true);
- //保存View的中心點
- halfWidth = width / 2;
- halfHeight = height / 2;
- setInterpolator(new AccelerateDecelerateInterpolator());
-
- }
-
- @Override
- protected void applyTransformation(float interpolatedTime, Transformation t) {
-
- final Matrix matrix = t.getMatrix();
- if (interpolatedTime < 0.8) {
- matrix.preScale(1+0.625f*interpolatedTime, 1-interpolatedTime/0.8f+0.01f,halfWidth,halfHeight);
- }else{
- matrix.preScale(7.5f*(1-interpolatedTime),0.01f,halfWidth,halfHeight);
- }
- }
- }