我正在开发一个应用程序,当它从onCreate点加载时,我只有一个黑屏(直到应用程序站稳脚跟)。看看其他应用程序,他们有一个公司徽标或酷炫的图像弹出几秒钟,有人可以告诉我该怎么做呢?
如果您可以将其设置为显示最短时间?
答案 0 :(得分: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();
}
}
将图片设置为此活动的背景。希望有所帮助。祝你好运!
答案 1 :(得分:1)
此启动图像也称为“启动画面”。 Here你可以找到如何制作闪屏。
答案 2 :(得分: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秒钟。做你想做的任何事情=)