私はアプリを開発していますが、onCreate ポイントからロードしている瞬間に、黒い画面が表示されます (アプリが足場を固めるまで)。他のアプリを見ると、会社のロゴやクールな画像が数秒間ポップアップ表示されます。誰か、これを行う方法を教えてください。
そして、最小限の時間だけ表示するように設定できるとしたら?
画像を数秒間表示し、メイン アクティビティにリダイレクトする新しいアクティビティを作成します。
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();
}
}
このアクティビティの背景として画像を設定します。それが役立つことを願っています。幸運を!
この起動イメージは、「スプラッシュ スクリーン」とも呼ばれます。スプラッシュスクリーンの作り方はこちら。
あなたのニーズはスプラッシュスクリーンです。これが私のスプラッシュスクリーンコードです。
新しいアクティビティを追加し、このアクティビティを開くためのアプリケーションを設定するだけです。
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 秒間画面に表示されたままになります。やりたいことは何でもしてください =)