如何在android中进行活动淡入过渡

时间:2012-05-12 19:47:50

标签: android xml animation layout android-activity

如何让android中的actcity褪色? 我使用了以下代码,但没有任何反应

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" />

1 个答案:

答案 0 :(得分:3)

使用此代码在两个活动之间进行平滑淡入淡出:

res / anim中的

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" />

res / anim中的fadeout.xml

<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" />

将以下内容放在Activity MainActivity的onCreate方法中。在setContentView为我工作之前。

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

注意:如果您使用的是Android2.o或更高版本,则覆盖OverPendingTransition工作

修改

或将此代码放入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);
    }