我正在尝试制作一个动画,其中两个同心圆上下缩放(中间有一个枢轴)。
如果我将动画设置为两个圆圈中的任何一个,它会在其中心正确缩放,但如果我将动画设置为两个圆圈,则枢轴是错误的。
以下是截图:
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/soundCircle"
android:layout_width="230dp"
android:layout_height="230dp"
android:layout_gravity="center">
<View
android:id="@+id/soundRipple2"
android:layout_width="230dp"
android:layout_height="230dp"
android:background="@drawable/circle"
android:alpha="0.08"
android:layout_centerInParent="true"/>
<View
android:id="@+id/soundRipple3"
android:layout_width="160dp"
android:layout_height="160dp"
android:background="@drawable/circle"
android:alpha="0.08"
android:layout_centerInParent="true"/>
</RelativeLayout>
</LinearLayout>
这是动画:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:toXScale="0.7"
android:toYScale="0.7"
android:pivotX="50%"
android:pivotY="50%"
android:repeatMode="reverse"
android:fillAfter="true"
android:repeatCount="infinite"/>
答案 0 :(得分:1)
这可能是由同一动画的两个实例共享的轴心点引起的。在我玩了一段时间之后,我发现如果你将动画的不同实例分配给View
,这是有效的。
这是我用过的代码:
Animation pulse = AnimationUtils.loadAnimation(this, R.anim.pulse);
Animation pulse2 = AnimationUtils.loadAnimation(this, R.anim.pulse);
circle1.startAnimation(pulse);
circle2.startAnimation(pulse2);
答案 1 :(得分:0)
我试过这个动画,动画效果很好。导航一些网站和git存储库后。我找到了一个最好的解决方案,可能它也会帮助你。您无需为该动画添加多个视图。只需访问一次,我相信你也喜欢这种效果。 https://github.com/skyfishjy/android-ripple-background