1

如何使actcity在android中消失?我使用了以下代码,但没有任何反应

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

1 回答 1

4

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

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 中的淡出.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 或更高版本,则 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);
    }
于 2012-05-12T20:01:14.053 回答