显示动画不适用于带有 alignParentRight 参数的视图

Reveal animation does not work on view with alignParentRight parameter

我正在使用 Google tutorial 为布局创建显示动画。 一切正常,直到我将 alignParentRight="true" 属性添加到波纹布局。它只是在没有任何动画的情况下显示为 VISIBLE。

这是我的布局:

<LinearLayout
        android:id="@+id/ripple"
        android:alignParentRight="true"
        android:layout_width="wrap_content"
        android:orientation="vertical"
        android:visibility="invisible"
        android:background="@color/black_transparent_60"
        android:layout_height="match_parent">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>

这里是用显示动画显示此布局的代码:

int cx = (myView.getLeft() + myView.getRight()) / 2; int cy = (myView.getTop() + myView.getBottom()) / 2;

int finalRadius = Math.max(myView.getWidth(), myView.getHeight());

Animator anim = ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius);

anim.setDuration(1000);

myView.setVisibility(View.VISIBLE);
mButtonShow.setVisibility(View.GONE);

anim.start();

cx 计算错误。

这段代码工作正常:

 final int cx = getResources().getDisplayMetrics().widthPixels;

        final int finalRadius = Math.max(myView.getWidth(), myView.getHeight());

        Animator anim = ViewAnimationUtils.createCircularReveal(myView, cx, 0, 0, finalRadius);