2012-11-21 174 views
1

我有一個應用程序在開發選項不保持活動時處於開啓狀態。當onCreate被再次調用時,Android動畫無法啓動

當爲OFF時,雖然,每一個應用程序切換到後臺和恢復時間

,該功能的onCreate再次調用。 在那裏,我正在重新創建最後一個應用程序狀態。

現在的問題是,發生在用戶操作上的簡單動畫不會啓動,動畫處理程序也不會調用。

似乎動畫被忽略。只有當活動被殺死並重新創建時纔會發生這種情況。

而最奇怪的部分是,我有4個動畫,一個imageview(開放,關閉)2和另一個imageview(開放,關閉)2。

而這在開幕動畫上發生。

你能幫我嗎?

動畫個XML(對於開口的一個/關閉anims)

redShow動畫

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator"> 
    <alpha 
     android:fromAlpha="0.1" 
     android:toAlpha="1.0" 
     android:duration="800" 
     /> 
    <scale android:fromXScale="0.0" 
     android:toXScale="1.0" 
     android:fromYScale="0.0" 
     android:toYScale="1.0" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:duration="800"> 

    </scale> 
</set> 

redHide動畫

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator"> 
    <alpha 
     android:fromAlpha="1.0" 
     android:toAlpha="0.0" 
     android:duration="300" 
     /> 
    <scale android:fromXScale="1.0" 
     android:toXScale="0.0" 
     android:fromYScale="1.0" 
     android:toYScale="0.0" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:duration="300"> 

    </scale> 
</set> 

代碼(在的onCreate)其中我初始化東西

red = (ImageView) findViewById(R.id.red); 

redHide = AnimationUtils.loadAnimation(this, R.anim.red_hide); 
redHide.setFillAfter(true); 
redHide.setAnimationListener(this); 

redShow = AnimationUtils.loadAnimation(this, R.anim.red_show);   
redShow.setFillAfter(true); 
redShow.setAnimationListener(this); 

的處理程序和方法,我callling

private void showRed() { 
    red.startAnimation(redShow); //this is the one that is not happening 
} 

private void hideRed() { 
    red.startAnimation(redHide); 
} 

@Override 
public void onAnimationEnd(Animation a) { 
} 

@Override 
public void onAnimationRepeat(Animation a) { 
} 

@Override 
public void onAnimationStart(Animation a) { 
} 

+0

你真的應該發佈你的代碼 – Rawkode

+1

無法幫助沒有代碼。和一個小費,在onCreate儘可能少。 onResume()或onStart()可能是更好的處理這個問題的地方。 – Simon

+0

你確定(即斷點)startAnimation()被調用嗎? – Simon

回答

3

事情你可以嘗試是:

  • 初始化動畫中的onResume()代替。
  • 在開始每個動畫之前調用clearAnimation()。
  • 試着動畫不fillAfter(),可能動畫已被鎖定到它的最新狀態莫名其妙。

只是一些想法..

閃爍的紅色警告燈,當你寫,你是重現過去的應用程序狀態,因爲你是顯示給我們的代碼看起來就好走了。

相關問題