美文网首页Android知识Android开发Android技术知识
妖娆Android动画(自定义电视关闭效果)

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

作者: Android开发哥 | 来源:发表于2017-03-04 09:13 被阅读615次

    效果图

    效果图

    使用说明

    对于自定义动画,只需要重写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动画(自定义电视关闭效果)

        本文链接:https://www.haomeiwen.com/subject/lbiowttx.html