2013-04-18 34 views
1

我有以下的動畫資源:無法執行轉換和奧飛動漫在薑餅

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:shareInterpolator="true"> 
    <translate 
     android:duration="@integer/animation_time" 
     android:fromXDelta="0%" 
     android:toXDelta="0%" 
     android:fromYDelta="0" 
     android:toYDelta="10%" /> 
    <alpha 
     android:duration="@integer/animation_time" 
     android:fromAlpha="1.0" 
     android:toAlpha="0.0" /> 
</set> 

我有一個對話框,這個動畫集,這樣,當駁回了對話框,它轉移略有下降和淡入淡出出。這適用於Android 3.0+,但在3.0版本的設備上,動畫的阿爾法部分不起任何作用。如果我將持續時間設置得較長,對話框不會立即消失,所以它看起來像是在運行,對話框不會消失。如果我註釋掉翻譯,或者將翻譯上的toYDelta值設置爲0(以便沒有任何翻譯),那麼alpha在2.3.4上工作,只是在對話框移動時它不會褪色。

任何想法,爲什麼這是?我在HTC Evo 3d上遇到了這個問題,它具有4.0的更新版本,但我沒有更新,所以我可以將其用作測試設備。

回答

0

共享插補器時遇到問題。嘗試爲每個動畫設置插值器,而不是使用android:shareInterpolator

+0

這有同樣的效果,翻譯工作,但阿爾法沒有。不過謝謝。 – 2013-04-18 12:56:00

0

使用浮動的Alpha動畫僅在API Level 11中引入。儘管API Level 1已經存在setAlpha(int)動畫。我不確定這是否可以像使用內置方法一樣工作,但可以嘗試使用整數值「1」和「0」代替浮點數。

0

您可以執行一個動畫,它只會將alpha設置爲特定的浮點值。我懷疑這是一個昂貴的資源,因爲每次你設置alpha都必須使用動畫。

public void setLayoutAlpha(float alpha, View v){ 
    AlphaAnimation alphaAnim = new AlphaAnimation(alpha, alpha); 
    alphaAnim.setFillAfter(true); 
    alphaAnim.setFillEnabled(true); 
    v.startAnimation(alphaAnim); 
} 

它可以這樣調用。

setLayoutAlpha(1f,viewToChangeAlpha); 

這是我用來創建與衰落的看法swipeToDismiss佈局,工程預3.0

希望它會爲任何你需要用它來工作。