我需要制作相当简单的动画:ImageView应该从左上角到中心出现,然后在右上角消失。这是我的XML代码。问题是当我添加第二个刻度(最小化)时,ImageView会回到左上角。如果我将其删除,则ImageView会正确移动到右侧。这有什么不对?
<set>
<scale
android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="0"
android:pivotY="0"
android:duration="2000" />
<translate
android:duration="2000"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="30%p"
android:toYDelta="30%p" />
</set>
<set>
<translate
android:startOffset="2000"
android:duration="2000"
android:fromXDelta="0%p"
android:fromYDelta="0%p"
android:toXDelta="70%p"
android:toYDelta="-25%p" />
<scale
android:startOffset="2000"
android:duration="2000"
android:pivotX="0"
android:pivotY="0"
android:fromXScale="1.0"
android:toXScale="0.0"
android:fromYScale="1.0"
android:toYScale="0.0" />
</set>
答案 0 :(得分:0)
看起来set
中的动画序列会影响他们的行为。
我没有修改你的任何代码,只是将第二个translate
移到第二个scale
后面,动画按预期工作。
<set>
<scale
android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="0"
android:pivotY="0"
android:duration="2000" />
<translate
android:duration="2000"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="30%p"
android:toYDelta="30%p" />
</set>
<set>
<scale
android:startOffset="2000"
android:duration="2000"
android:pivotX="0"
android:pivotY="0"
android:fromXScale="1.0"
android:toXScale="0.0"
android:fromYScale="1.0"
android:toYScale="0.0" />
<translate
android:startOffset="2000"
android:duration="2000"
android:fromXDelta="0%p"
android:fromYDelta="0%p"
android:toXDelta="70%p"
android:toYDelta="-25%p" />
</set>