妖娆Android动画(自定义电视关闭效果)

效果图

妖娆Android动画(自定义电视关闭效果)_第1张图片
效果图

使用说明

对于自定义动画,只需要重写Animation类的applyTransformation方法就可以了。

protected void applyTransformation(float interpolatedTime, Transformation t) {
}

其中interpolatedTime参数是差值器时间因子Interpolator,不同的差值器同一时间计算出来的是不一样的.此值是由当前动画完成的百分比和当前时间所对应的差值计算得来的.取值范围是0-1.我的理解就是下一阶段将要 完成整个动画的百分比,不知道是否正确.
第二个参数Transformation是矩阵的封装类,它封装了一下方法去操作矩阵.

代码

所以可以写出关闭电视的动画类是这样的

动画代码

class OffTVAnimation extends Animation {
    @Override
    protected void applyTransformation(float interpolatedTime, Transformation t) {
        Matrix matrix = t.getMatrix();
        matrix.preScale(1, 1 - interpolatedTime, view.getWidth() / 2, view.getHeight() / 2);
        /**
         * 使宽度不缩放,高度缩小最后是0.然后后面两个参数是按被缩放的view的中心点缩放
         */
        view.setAlpha(1 - interpolatedTime);
    }
    
    @Override
    public void initialize(int width, int height, int parentWidth, int parentHeight) {
        super.initialize(width, height, parentWidth, parentHeight);
        setDuration(200);
        setInterpolator(new DecelerateInterpolator());
        setFillAfter(true);
    }
}

调用代码

OffTVAnimation offTVAnimation = new OffTVAnimation();
view.startAnimation(offTVAnimation);

你可能感兴趣的:(妖娆Android动画(自定义电视关闭效果))