美文网首页
Circular Reveal 揭露效果

Circular Reveal 揭露效果

作者: 毕加森 | 来源:发表于2017-07-04 15:47 被阅读0次

    <p>

    ViewAnimationUtils.createCircularReveal()

    • 方法参数
    /**
     * @param view        执行动画的view
     * @param centerX     动画圆中心的X坐标
     * @param centerY     动画圆中心的Y坐标
     * @param startRadius 动画圆的起始半径
     * @param endRadius   动画圆的结束半径
     */
    public static Animator createCircularReveal(View view, int centerX, int centerY, float startRadius, float endRadius) {
        throw new RuntimeException("Stub!");
    }
    
    • 使用方法
    @Override
    public void onClick(View view) {
        // 动画圆中心的X坐标
        int centerX = view.getWidth() / 2;
        // 动画圆中心的Y坐标
        int centerY = view.getHeight() / 2;
        // 动画圆的起始半径:从圆心开始执行动画
        float startRadius = 0;
        // 动画圆的结束半径:计算长宽的斜边长
        float endRadius = (float) Math.hypot((double) (view.getWidth() / 2), (double) (view.getHeight() / 2));
        // 定义揭露动画
        Animator animator = ViewAnimationUtils.createCircularReveal(
                view, centerX, centerY, startRadius, endRadius
        );
        // 设置动画监听:可根据需求在动画开始或结束时做相应操作
        animator.addListener(new MyAnimatorListener());
        // 设置动画持续时间
        animator.setDuration(1000);
        // 开始执行动画
        animator.start();
    }
    // 动画监听
    private class MyAnimatorListener implements Animator.AnimatorListener {
        @Override
        public void onAnimationStart(Animator animator) {
        }
        @Override
        public void onAnimationEnd(Animator animator) {
        }
        @Override
        public void onAnimationCancel(Animator animator) {
        }
        @Override
        public void onAnimationRepeat(Animator animator) {
        }
    }
    

    相关文章

      网友评论

          本文标题:Circular Reveal 揭露效果

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