【问题标题】:Fading Background then Go to Next Activity褪色背景然后转到下一个活动
【发布时间】:2011-11-08 11:50:19
【问题描述】:

我只是想模仿像愤怒的小鸟这样的著名游戏,当你开始游戏时,有几个屏幕,闪烁然后淡出,然后转到另一个屏幕,淡出然后主菜单出来。我怎么做?目前我的代码是用于淡入淡出的。在执行下面的代码后,令人惊讶的是,它没有动画。有什么想法吗?

package com.kfc;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.*;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.AnimationUtils;
import android.widget.LinearLayout;
import android.widget.TextView;

public class Intro extends Activity {
    LinearLayout screen;
    Handler handler = new Handler();
    int i;
    Intent intent;
    TextView tv;
    Animation mAnim;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.introxml);

        screen = (LinearLayout) findViewById(R.id.myintro);


        Animation fade = AnimationUtils.loadAnimation(this, android.R.anim.fade_in);
        fade.setAnimationListener(new AnimationListener() {
            @Override
             public void onAnimationRepeat(Animation animation) {
              // TODO Auto-generated method stub

             }
            @Override
             public void onAnimationStart(Animation animation) {
              // TODO Auto-generated method stub

             }
            @Override
             public void onAnimationEnd(Animation animation) {
                startActivity(new Intent(Intro.this, NewKFCActivity.class));
                Intro.this.finish();
                overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
             }

        });
        screen.startAnimation(fade);

    }
}

【问题讨论】:

  • 这太劳累了 - 请改用 Activity#overridePendingTransition。在调用 startActivity 之前提供一个或两个 XML alpha 动画,然后你就设置好了:developer.android.com/reference/android/app/…
  • @Jens 我编辑了上面的代码..我认为我做了一个错误的实现..程序在后台停止并且没有任何淡入淡出
  • 1。绝对跳过线程。 2。你有一个View 可用,所以在Runnable#run() 方法中使用screen#postDelayed(new Runnable(){..}, 5000),然后在#run() 方法中执行screen#postDelayed(new Runnable(){..}, 5000)没有调用@987654329 @)。
  • @Jens 我已经编辑了上面的代码.. 但仍然失败:(
  • 嗯,你在跑什么?我尝试了相同的代码,它在两个活动之间消失了,没有问题。您是否将日志输出添加到两个活动 Activity#onCreate(Bundle) 方法中?

标签: android transitions


【解决方案1】:

这可以通过活动动画来完成。

在调用startActivity之后,调用

overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);

第一个参数表示你即将开始的activity将要淡入,第二个参数为当前在前台的activity指定一个淡出动画。

【讨论】:

  • 我编辑了上面的代码..我认为我做了一个错误的实现..程序在后台停止并且没有任何淡入
  • 不足为奇 - 您正在另一个活动的 onCreate 方法中开始一个新活动 - 调用 onCreate 时甚至还没有显示后一个活动。也许您想通过计时器来完成
  • 哇,我现在很困惑.. 对不起,我是 android 的新手.. 我现在应该把 overridePendingTransition 放在哪里?
  • 这将适用于 2.1 及更高版本。 overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); startActivity(new Intent(Intro.this,NewKFCActivity.class));
  • 这很奇怪。你现在在观察什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多