Example of Reveal animations on Android 5.0

本文介绍了一种YouTube风格的视频播放动画实现方法,通过创建圆形裁剪效果来展示或隐藏视图,包括获取裁剪圆心位置、设置初始及最终半径,并使用Animator进行动画效果的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仿youtobe播放视频时开场动画


  // To reveal a previously invisible view using this effect:
  private void show( final View view) {
   // get the center for the clipping circle
   int cx = (view.getLeft() + view.getRight()) / 2 ;
   int cy = (view.getTop() + view.getBottom()) / 2 ;
 
   // get the final radius for the clipping circle
   int finalRadius = Math.max(view.getWidth(), view.getHeight());
 
   // create the animator for this view (the start radius is zero)
   Animator anim = ViewAnimationUtils.createCircularReveal(view, cx, cy,
     0 , finalRadius);
   anim.setDuration( 1000 );
 
   // make the view visible and start the animation
   view.setVisibility(View.VISIBLE);
   anim.start();
  }
 
  // To hide a previously visible view using this effect:
  private void hide( final View view) {
 
   // get the center for the clipping circle
   int cx = (view.getLeft() + view.getRight()) / 2 ;
   int cy = (view.getTop() + view.getBottom()) / 2 ;
 
   // get the initial radius for the clipping circle
   int initialRadius = view.getWidth();
 
   // create the animation (the final radius is zero)
   Animator anim = ViewAnimationUtils.createCircularReveal(view, cx, cy,
     initialRadius, 0 );
   anim.setDuration( 1000 );
 
   // make the view invisible when the animation is done
   anim.addListener( new AnimatorListenerAdapter() {
    @Override
    public void onAnimationEnd(Animator animation) {
     super .onAnimationEnd(animation);
     view.setVisibility(View.INVISIBLE);
    }
   });
 
   // start the animation
   anim.start();
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值