読者です 読者をやめる 読者になる 読者になる

fresh digitable

セミコロンたちが躍動する おいらのコードを 皆さんに 見せたいね

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の左上を基準にした円の中心座標を渡さなければならない。ちなみに英語版のチュートリアルこのコミット で修正されたようだが、その他の言語のチュートリアルはそのままになっている様子。