Circular reveal transition for new activity

后端 未结 5 796
耶瑟儿~
耶瑟儿~ 2020-11-28 02:08

As per https://developer.android.com/training/material/animations.html

The ViewAnimationUtils.createCircularReveal() method enables you t

5条回答
  •  盖世英雄少女心
    2020-11-28 02:51

    If you want to reverse the circular reveal on leaving activity, use the following modification to onBackPressed().

    @Override
    public void onBackPressed() {
    
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            int cx = rootLayout.getWidth();
            int cy = 0;
            float finalRadius = Math.max(rootLayout.getWidth(), rootLayout.getHeight());
            Animator circularReveal = ViewAnimationUtils.createCircularReveal(rootLayout, cx, cy, finalRadius, 0);
    
            circularReveal.addListener(new Animator.AnimatorListener() {
                @Override
                public void onAnimationStart(Animator animator) {
    
                }
    
                @Override
                public void onAnimationEnd(Animator animator) {
                    rootLayout.setVisibility(View.INVISIBLE);
                    finish();
                }
    
                @Override
                public void onAnimationCancel(Animator animator) {
    
                }
    
                @Override
                public void onAnimationRepeat(Animator animator) {
    
                }
            });
            circularReveal.setDuration(400);
            circularReveal.start();
        }else{
            super.onBackPressed();
        }
    }
    

提交回复
热议问题