2012-07-16 162 views
1

我已經通過xml製作了動畫,如用於活動轉換的旋轉動畫。第一部分是旋轉和縮放動畫工作收集顯示半旋轉工作正常,但是當我添加他們與開始偏移他們的反向,他們顯示空白的觀點,而不是動畫......甚至不顯示動畫的第一部分是正常工作..添加逆向動畫時,Android動畫顯示空白視圖

下面是XML代碼當只有第一部分是有它工作正常..

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 
<rotate 
    android:duration="2000" 
    android:fromDegrees="0" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toDegrees="-15" 
    android:toYScale="0.0" /> 

<scale 
    android:duration="2000" 
    android:fromXScale="1" 
    android:fromYScale="1" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toXScale="0" 
    android:toYScale="1" /> 


</set> 

但是當我添加符號相反它只是空所有的時間...

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 
<rotate 
    android:duration="2000" 
    android:fromDegrees="0" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toDegrees="-15" 
    android:toYScale="0.0" /> 

<scale 
    android:duration="2000" 
    android:fromXScale="1" 
    android:fromYScale="1" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toXScale="0" 
    android:toYScale="1" /> 


<rotate 
    android:startOffset="2000" 
    android:duration="2000" 
    android:fromDegrees="-15" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toDegrees="0" 
    android:toYScale="0.0" /> 

    <scale 
    android:startOffset="2000" 
    android:duration="2000" 
    android:fromXScale="0" 
    android:fromYScale="1" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toXScale="1" 
    android:toYScale="1" /> 


    </set> 

所以大家請告訴我我要去哪裏錯...

回答

4

你不需要公佈你的動畫來達到相反的效果。您可以使用android:repeateMode = "reverse"android:repeatCount = "1"

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 

<rotate 
    android:duration="2000" 
    android:fromDegrees="0" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:repeatCount="1" 
    android:repeatMode="reverse" 
    android:toDegrees="-15" /> 


<scale 
    android:duration="2000" 
    android:fromXScale="1" 
    android:fromYScale="1" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:repeatCount="1" 
    android:repeatMode="reverse" 
    android:toXScale="0" 
    android:toYScale="1" /> 

</set> 

您需要設置repeatCountrepeatMode既爲scalerotate動畫。不幸的是,您不能直接在set屬性中使用它,因爲bugAnimationSet執行。

但是這個動畫只適用於一項活動。如果您確實希望第一個活動消失,然後再出現第二個活動,則需要將動畫分成兩部分。第一部分將會有你的rotatescale直接動畫,第二部分將會翻轉rotatescale動畫。所以基本上只需要將您的set四個動畫分成兩個文件。然後,你需要使用兩個動畫開始新的活動:

overridePendingTransition(R.anim.direct, R.anim.reversed); 
+0

安德烈感謝您的答案,因爲我想鏡一種逆向的手段鏡面效果相反的第一個建議不爲我工作,其次我知道overridePendingTransition我們給單獨的文件,但我結合動畫通過應用單個元素來查看完整的流程...所以在我的問題中,我不問其他方法來做我想要的,我問我爲什麼我的代碼不工作?並在我的代碼中的問題在哪裏.. – 2012-07-16 14:07:28

+0

您的xml是好的,但在動畫集中有一個錯誤。 'android:startOffset'不能正常工作。你有一個空白的屏幕,因爲所有4個動畫同時運行。 – 2012-07-16 15:01:35