好吧,我将图像视图置于RelativeLayout
中<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imgHomePlayPause"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:visibility="gone" />
我也有这个动画:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:fromXScale="1.0"
android:fromYScale="1.0"
android:toXScale="2.0"
android:toYScale="2.0"
android:duration="400"
android:pivotX="50%"
android:pivotY="50%"/>
</set>
问题是当动画第一次开始时,它会从左上角缩放,而不是从中心缩放。所有下一次它都可以正常工作。有什么想法吗?
答案 0 :(得分:8)
计算 pivotX 和 pivotY 时可能会出现此问题。
我必须在开始时将查看 可见性设置为 INVISIBLE ,而不是 GONE 。 这迫使我使用 RelativeLayout ,因为我必须在两个 View 之间切换。
在您的情况下,只需将初始可见性更改为不可见,如下所示:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imgHomePlayPause"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:visibility="invisible" />
首次启动动画后,您可以将可见性设置为 GONE ,动画仍然有效。
结论:
我认为计算元素的宽度和高度只有在绘制一次后才能正常工作。 当元素可见性设置为 GONE 时,它将根本不会被绘制,并且不能计算宽度和高度。