前段时间,在开发项目时发现打开欢迎页面会闪一下黑色,再显示欢迎页面。我的主题背景就是黑色的,估计是主题的问题。
下面做了个demo,是有闪屏的欢迎页面:
下面是WelcomeActivity的代码:
/**
* 欢迎页面
*
* @author chenjunxu
* @date 2016/6/8
*/
public class WelcomeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去掉标题栏 this.supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
//设置全屏this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_welcome);
handleWelcome();
}
/**
* 处理欢迎页面
*/
private void handleWelcome() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//打开主页并关闭欢迎页面
Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);
startActivity(intent);
WelcomeActivity.this.finish();
}
}, 1500);
}
}
- 需要注意的是去掉标题栏的代码。如果是继承Activity,则
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
- 如果是继承ActionBarActivity(已过时)或者AppCompatActivity ,则
this.supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
说回正题,解决闪屏只需要设置一个透明的Theme,在styles.xml添加如下代码,问题就可以解决了。这样,用户体验也好了。
<style name="WelcomeTheme" parent="AppTheme">
<item name="android:windowIsTranslucent">true</item>
</style>
这是解决后的效果图: