10

我正在开发一个应用程序,当它从 onCreate 点加载时,我只有一个黑屏(直到应用程序站稳脚跟)。查看其他应用程序,他们有一个公司徽标或弹出几秒钟的酷图片,有人可以告诉我该怎么做吗?

如果您可以将其设置为显示最短时间?

4

3 回答 3

9

创建一个显示图像几秒钟并重定向到您的主要活动的新活动:

public class SplashActivity extends Activity
{
    private static final long DELAY = 3000;
    private boolean scheduled = false;
    private Timer splashTimer;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        splashTimer = new Timer();
        splashTimer.schedule(new TimerTask()
        {
            @Override
            public void run()
            {
                SplashActivity.this.finish();
                startActivity(new Intent(SplashActivity.this, MainActivity.class));
            }
         }, DELAY);
       scheduled = true;
    }

    @Override
    protected void onDestroy()
    {
        super.onDestroy();
        if (scheduled)
            splashTimer.cancel();
        splashTimer.purge();
    }
}

将您的图像设置为此活动的背景。希望有帮助。祝你好运!

于 2011-06-19T17:36:38.007 回答
1

此启动图像也称为“启动画面”。在这里您可以找到如何制作启动画面。

于 2011-06-19T17:38:44.107 回答
0

您的需求是 callign Splash Screen。这是我的闪屏代码。

只需添加新活动并设置应用程序即可打开此活动。

公共类 SplashActivity 扩展 DeviceInfoAbstractActivity {

@SuppressLint("MissingSuperCall")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState, R.layout.activity_splash);

    passScreen();
}

private void passScreen() {

    new CountDownTimer(1000, 2000) {

        @Override
        public void onTick(long millisUntilFinished) {

        }

        @Override
        public void onFinish() {

            Intent intent = RDAIntentHelpers.getClearCacheIntent();

            intent.setClass(SplashActivity.this, MainActivity.class);

            startActivity(intent);

        }
    }.start();
}

@Override
public void onBackPressed() {
    //no exit
}
}

这是我的 getClearCacheIntent() 方法

public static Intent getClearCacheIntent() {

    Intent intent = new Intent();

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

    return intent;
}

在这些之后,您的初始屏幕会在屏幕上停留 2 秒。随心所欲 =)

于 2016-10-06T11:58:53.933 回答