启动画面未首先打开
Splash screen not opening first
它不会先打开启动画面,而是打开主 activity,然后启动画面 screen.What 可能是 problem.The 启动画面不会消失,直到我按下后退按钮。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.content.Intent;
import android.os.Handler;
public class MainActivity extends AppCompatActivity {
private static int SPLASH_TIME_OUT=4000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable(){
public void run(){
Intent homeIntent=new Intent(MainActivity.this,Splash.class);
startActivity(homeIntent);
finish();
}
}, SPLASH_TIME_OUT);
}
}
在AndroidManifest.xml、
<activity
android:name=".SplashActivity"
android:noHistory="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen" />
并且在splashscreen.javaonCreate函数中,可以设置定时器调用mainactivity
new Timer().schedule(new TimerTask() {
@Override
public void run() {
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
},4000);
希望对您有所帮助
制作启动画面的最佳方式
你需要什么:
- 两个
Activity
:MainActivity.java
和SplashScreen.java
- 两种布局:
layout_main_activity.xml
和 layout_splashscreen.xml
在您的 AndroidManifest.xml 中声明两个 Activity
。 SplashScreen 必须是主体 Activity
(MAIN
和 LAUNCHER
):
<!-- Splash screen -->
<activity
android:name="com.package.SplashScreen"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Main activity -->
<activity
android:name="com.package.MainActivity"
android:label="@string/app_name" >
</activity>
SplashScreen.java :
public class SplashScreen extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(SplashScreen.this, MainActivity.class);
startActivity(i);
finish();
}
}, 3000); // for 3 seconds
}
}
它不会先打开启动画面,而是打开主 activity,然后启动画面 screen.What 可能是 problem.The 启动画面不会消失,直到我按下后退按钮。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.content.Intent;
import android.os.Handler;
public class MainActivity extends AppCompatActivity {
private static int SPLASH_TIME_OUT=4000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable(){
public void run(){
Intent homeIntent=new Intent(MainActivity.this,Splash.class);
startActivity(homeIntent);
finish();
}
}, SPLASH_TIME_OUT);
}
}
在AndroidManifest.xml、
<activity
android:name=".SplashActivity"
android:noHistory="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen" />
并且在splashscreen.javaonCreate函数中,可以设置定时器调用mainactivity
new Timer().schedule(new TimerTask() {
@Override
public void run() {
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
},4000);
希望对您有所帮助
制作启动画面的最佳方式
你需要什么:
- 两个
Activity
:MainActivity.java
和SplashScreen.java
- 两种布局:
layout_main_activity.xml
和layout_splashscreen.xml
在您的 AndroidManifest.xml 中声明两个 Activity
。 SplashScreen 必须是主体 Activity
(MAIN
和 LAUNCHER
):
<!-- Splash screen -->
<activity
android:name="com.package.SplashScreen"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Main activity -->
<activity
android:name="com.package.MainActivity"
android:label="@string/app_name" >
</activity>
SplashScreen.java :
public class SplashScreen extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(SplashScreen.this, MainActivity.class);
startActivity(i);
finish();
}
}, 3000); // for 3 seconds
}
}