ViewAnimationUtils.createCircularReveal()にはアニメーションさせたいviewの左上を基準にした座標を渡す
ViewAnimationUtils.createCircularReveal()
はcircular reveal animatorのオブジェクトを作成するためのユーティリティクラスで、 API Level 21(Lollipop)で追加された。
ViewAnimationUtils | Android Developers
アニメーションさせたいviewと、円の中心座標、円の最初の半径と最後の半径を渡す。Android公式のチュートリアル(日本語) には
// get the center for the clipping circle int cx = (myView.getLeft() + myView.getRight()) / 2; int cy = (myView.getTop() + myView.getBottom()) / 2;
というように親viewの左上を基準にした座標で円の中心(この例ではたまたまmyView
の中心をアニメーションの円の中心としている)を決めているが、これで良かったのはAPI Level 22までのようで、23(Marshmallow)からは
int cx = myView.getWidth() / 2; int cy = myView.getHeight() / 2;
というようにアニメーションさせたいviewの左上を基準にした円の中心座標を渡さなければならない。ちなみに英語版のチュートリアルはこのコミット で修正されたようだが、その他の言語のチュートリアルはそのままになっている様子。