Android启动界面SplashActivity的实现方法

实现

创建欢迎页SplashActivity

public class SplashActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(SplashActivity.this,MainActivity.class);
                startActivity(intent);
                SplashActivity.this.fileList();
            }
        },3000);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK){
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}

欢迎页文件activity_splash


    

主界面MainActivity和布局文件activity_main这里不写了

AndroidManifest设置SplashActivity为启动的activity


  	......
    
        
            
                

                
            
        

        
    


主题AppTheme去掉标题栏

    
    

效果图
Android启动界面SplashActivity的实现方法_第1张图片
白屏问题处理

当我们点开app会先进入短暂的空白页面再进入欢迎页面

原因

  1. 在Activity启动onCreate()方法,执行setContentView()时出现白屏
  2. 页面的窗体绘制先于资源加载,这个时候就会出现短暂的白屏,也就是说还没加载到布局文件,就已经显示了window窗口背景,黑屏白屏就是window窗口背景


            
                

                
            
        

使用这种方法的话,SplashActivity中的setContentView()可以去掉了

setContentView(R.layout.activity_splash);

Android启动界面SplashActivity的实现方法_第2张图片

  • 使用透明主题android:Theme.Translucent.NoTitleBar.Fullscreen
    使用透明主题,点图标后在桌面上要等上那么一小会儿,然后是整个界面才会一下子显示出来,让人误以为慢的是桌面launcher而不是应用

使用同上

Android启动界面SplashActivity的实现方法_第3张图片
更多优化

https://blog.csdn.net/u010356768/article/details/89632869

你可能感兴趣的:(Android从入门到放弃)