以圆形显示动画为中心

时间:2015-07-07 22:13:06

标签: android animation

我正在尝试创建一个从View(API 21+)中心开始的圆形显示动画。我尝试将View.getLeft()View.getRight()的平均值用于x,View.getTop()View.getBottom()用于y(这是sample的平均值,但如果我的视图是偏移CoordinatorLayout,值是错误的。我正在抓取OnPreDrawListener中的值,因此已经测量了View。

1 个答案:

答案 0 :(得分:6)

我发现使用View.getDrawingRect()可以解决问题。

private Animator createCenteredReveal(View view) {
  // Could optimize by reusing a temporary Rect instead of allocating a new one
  Rect bounds = new Rect();
  view.getDrawingRect(bounds);
  int centerX = bounds.centerX();
  int centerY = bounds.centerY();
  int finalRadius = Math.max(bounds.width(), bounds.height());
  return ViewAnimationUtils.createCircularReveal(view, centerX, centerY, 0f, finalRadius);
}