I ma developing an app, which at the moment when it is loading from the onCreate point, I just have a black screen (until the ap开发者_运维百科p gets its footing). Looking at other apps they have a company logo or cool image that pops up for a few seconds, can someone tell me how to do this please?
And if you can set it to display for a minimal time?
Create a new activity that displays the image for a few seconds and redirects to your main activity:
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();
}
}
Set your image as the background for this activity. Hope that helps. Good luck!
This start up image also known as 'splash screen'. Here you can find how to make splash screen.
Your needs is callign Splash Screen. Here is my splash screen code.
Just add new activity and set application for opening this activity.
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
}
}
and this my getClearCacheIntent() method
public static Intent getClearCacheIntent() {
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
return intent;
}
after these, your splash screen stays on screen for 2 seconds. Do whatever you want =)
精彩评论