简单的安卓启动页方案

很久的时间,安卓启动总有2s甚至更长时间的黑屏时间,这个问题也一直没有时间解决。最近抽空加了一个,不能完全解决黑屏时间问题,有部分机型仍然会有黑屏时间,但会大大缩短,在这里跟大家分享。(注:安卓小白瞎搞的)

1、在/res/layout中增加一个luancher.xml


//其中需要修改的是:background="@drawable/startpic",在项目中加入你的启动图,这里改成你的启动图

2、在AppActivity.java中加入以下代码:

//onCreate方法中加入:
instance = this;
AppActivity.showLauncher();

//-------启动页
static public AppActivity instance;
static public View launcherView;
public static void showLauncher(){
	
	Log.d("LAUNCHER", "SHOW");
    instance.runOnUiThread(new Runnable() {
    	@Override
        public void run() {  
			if(launcherView == null) {
	        	launcherView = LayoutInflater.from(instance).inflate(R.layout.activity_launcher, null);
	            FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
	            params.gravity = Gravity.CENTER;
	            instance.addContentView(launcherView, params);
	    	}    
        }
    });
}
public static void hideLauncher(){
	
	Log.d("LAUNCHER", "HIDE");
	instance.runOnUiThread(new Runnable() {
                    //这里加一个渐隐的动画
		@Override
		public void run() {
			if(launcherView != null) {
     		    AlphaAnimation mHideAnimation = new AlphaAnimation(1.0f, 0.0f);
     		    mHideAnimation.setDuration(200);
     		    mHideAnimation.setFillAfter(true);
     		    launcherView.startAnimation(mHideAnimation);
     		}         
		}
	});
    
    new Thread(new Runnable() {
    	@Override
    	public void run() {
    		try {
    			Thread.sleep(250);
    			instance.runOnUiThread(new Runnable() {
    				@Override
    				public void run() {
       	     			if(launcherView != null) {
       	     				ViewGroup vg = (ViewGroup) launcherView.getParent();
       	     				vg.removeView(launcherView);
       	     				launcherView = null;
       	     			}         
    				}
    			});
    		} 
    		catch (InterruptedException e) {
    			instance.runOnUiThread(new Runnable() {
    				@Override
    				public void run() {
       	     			if(launcherView != null) {
       	     				ViewGroup vg = (ViewGroup) launcherView.getParent();
       	     				vg.removeView(launcherView);
       	     				launcherView = null;
       	     			}         
    				}
    			});
    		}
    	}
    }).start();
}

3、在你的首界面加载后移除启动图,我在首界面的onload方法中调用 hideLauncher() 方法

3赞

mark

mark

最近我也想问下这个问题~
在安卓上启动时间,确实比较长···········
希望引擎组的大大们关注下

希望开发组能够关注一下启动页的问题~~另外感谢楼主:grin: