2012-05-12 49 views
1

如何讓android中的actcity褪色? 我用下面的代碼,但沒有任何反應如何使android中的actviity褪色?

public class MetroActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.metro_splash); 
     getWindow().setWindowAnimations(R.anim.intro_anim); 
     Runnable r= new Runnable() { 

      @Override 
      public void run() { 
       Intent i = new Intent(getApplicationContext(),MainActivity.class); 
       startActivity(i); 

      } 
     }; 
     Handler h = new Handler(); 
     h.postDelayed(r, 3000); 


    } 
} 

動畫XML:

<?xml version="1.0" encoding="utf-8"?> 
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="100" 
    android:fromAlpha="0.0" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:toAlpha="1.0" /> 
+0

貝德爲什麼你嘗試之後沒有使用Activity.overridePendingTransition()來淡化? –

回答

3

使用此代碼做兩個活動之間的平滑淡入:在res

fadein.xml /動漫:

<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="100" /> 

fadeout.xml在res /阿尼姆

<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="100" /> 

放在onCreate方法對於活動MainActivity以下。在setContentView爲我工作之前。

overridePendingTransition(R.anim.fadein, R.anim.fadeout); 

注:如果您使用Android2.o以上則overridePendingTransition工作

編輯:

或者把這個代碼在MainActivity

@Override 
    public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.metro_splash); 
    getWindow().setWindowAnimations(R.anim.intro_anim); 
    Animation anim = AnimationUtils.loadAnimation(this,R.anim.animation); 
    // 'body' is root layout id which is for MainActivity 
    findViewById(R.id.body).startAnimation(anim); 
    }