2011-02-26 103 views
2

我需要制作相当简单的动画:ImageView应该从左上角出现在中央,然后消失在右上角。这是我的XML代码。问题是,当我添加第二个比例(最小化)时,ImageView返回到左上角。如果我删除它然后ImageView正确地移动到右侧。这里有什么问题?以2步缩放和翻译动画

<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

它看起来像一个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>