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

あなたのニーズはスプラッシュスクリーンです。これが私のスプラッシュスクリーンコードです。

新しいアクティビティを追加し、このアクティビティを開くためのアプリケーションを設定するだけです。

public class SplashActivity extends 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 に答える