splash.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background_1" >
</RelativeLayout>
SplashScreen.java
package org.sbynight.app;
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
public class SplashScreen extends Activity {
private static String TAG = SplashScreen.class.getName();
private static long SLEEP_TIME = 5; // Sleep for some time
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE); // Removes title bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // Removes notification bar
setContentView(R.layout.splash);
// Start timer and launch main activity
IntentLauncher launcher = new IntentLauncher();
launcher.start();
}
private class IntentLauncher extends Thread {
@Override
/**
* Sleep for some time and than start new activity.
*/
public void run() {
try {
// Sleeping
Thread.sleep(SLEEP_TIME*1000);
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
// Start main activity
Intent intent = new Intent(SplashScreen.this, MainActivity.class);
SplashScreen.this.startActivity(intent);
SplashScreen.this.finish();
}
}
}
解决问题 - 发布更新
1.我创建了一个“SplashScreen2.java”+“Splash2.xml”
2.我添加了@ drawable&gt; background_2(启动画面的第二个图像)
3.我添加到In Manifest splash2 .....
- 在我的SplashScreen.java中,我删除了以下代码:
醇>
// Start main activity
Intent intent = new Intent(SplashScreen.this, MainActivity.class);
SplashScreen.this.startActivity(intent);
SplashScreen.this.finish();
- 在我的SplashScreen.java中,替换为此代码:
醇>
/**** Create Thread that will sleep for 5 seconds ****/
Thread background = new Thread() {
public void run() {
try {
// Thread will sleep for 1 seconds
sleep(1*1000);
// After 1 seconds redirect to another intent
Intent i=new Intent(getBaseContext(),SplashScreen2.class);
startActivity(i);
//Remove activity
finish();
} catch (Exception e) {
}
}
};
// start thread
background.start();
在我的Splashscreen2.java中,我添加了相同的代码,如SplashScreen.java,
现在可以使用此代码启动MainActivity.class
//开始主要活动 Intent intent = new Intent(SplashScreen2.this,MainActivity.class); SplashScreen2.this.startActivity(意向); SplashScreen2.this.finish();
解决了问题!我现在有2个SplashScreen!
答案 0 :(得分:0)
此用例违反Android设计指南。
请考虑您的用户如何使用您的应用获得良好的用户体验,并快速访问您的内容。
除了非常有限的情况外,不要显示未经请求的帮助
当然,你希望每个人都能快速学习绳索,发现绳索 很酷的功能,并充分利用您的应用程序。所以你可能会 试图提供一次性介绍性幻灯片,视频或启动 在首次打开应用时向所有新用户显示屏幕。或者你可能是 吸引到显示有用的文本气泡或对话框的想法 用户第一次与某些功能进行交互。
在几乎所有情况下,我们建议不要使用这些方法,因为:
他们被打断了。人们会急于开始使用您的应用, 你放在他们面前的任何东西都会感觉像是一个障碍或者 尽管你的意图很好,但可能是一种烦恼。因为他们 没有提出要求,他们可能不会密切关注它。 他们通常没有必要。如果您对可用性有疑问 您的应用程序的方面,不要只是帮助解决问题。试着解决 它在UI中。应用Android设计模式,样式和构建 块,你将在很大程度上减少教育你的需要 用户。
答案 1 :(得分:0)
我真的不明白你为什么要添加第二个&#34;闪屏&#34;。如果您确实想要这样做,为什么不将MainActivity
设为SplashScreenActivity
,然后从那里转移到新活动。