开发者

Image on start up / loading

开发者 https://www.devze.com 2023-03-13 20:13 出处:网络
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 co

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 =)

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号