2011-06-19 77 views
8

我可能正在開發一個應用程序,它在從onCreate點加載的時候,我只是有一個黑屏(直到應用程序獲得其基礎)。看看其他應用程序,他們有一個公司的標誌或冷卻圖像彈出幾秒鐘,有人可以告訴我如何做到這一點嗎?啓動/加載時的圖像

如果您可以將其設置爲顯示最短時間?

回答

10

創建顯示圖像幾秒鐘,並重定向到您的主要活動新的活動:

public class SplashActivity extends Activity 
{ 
    private static final long DELAY = 3000; 
    private boolean scheduled = false; 
    private Timer splashTimer; 

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

     splashTimer = new Timer(); 
     splashTimer.schedule(new TimerTask() 
     { 
      @Override 
      public void run() 
      { 
       SplashActivity.this.finish(); 
       startActivity(new Intent(SplashActivity.this, MainActivity.class)); 
      } 
     }, DELAY); 
     scheduled = true; 
    } 

    @Override 
    protected void onDestroy() 
    { 
     super.onDestroy(); 
     if (scheduled) 
      splashTimer.cancel(); 
     splashTimer.purge(); 
    } 
} 

設置您的影像爲背景,這項活動。希望有所幫助。祝你好運!

+2

但請使用'Handler'而不是'TimerTask'。 – inazaruk

+0

您是在模擬器還是實際設備上測試此代碼? Android上沒有'Timer'! –

+2

Timer不是一個android對象,它是一個java對象。這是我的一個應用程序中的工作代碼。它適用於設備和仿真器。將以下內容添加到您的導入列表中,您將會被罰款: import java.util.Timer; import java.util.TimerTask; –

1

此啓動圖像也被稱爲「閃屏」。 Here你可以找到如何製作啓動畫面。

0

您的需求是callign Splash Screen。這是我的啓動畫面代碼。

只需添加新的活動並設置應用程序來打開此活動。

公共類SplashActivity擴展DeviceInfoAbstractActivity {

@SuppressLint("MissingSuperCall") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState, R.layout.activity_splash); 

    passScreen(); 
} 

private void passScreen() { 

    new CountDownTimer(1000, 2000) { 

     @Override 
     public void onTick(long millisUntilFinished) { 

     } 

     @Override 
     public void onFinish() { 

      Intent intent = RDAIntentHelpers.getClearCacheIntent(); 

      intent.setClass(SplashActivity.this, MainActivity.class); 

      startActivity(intent); 

     } 
    }.start(); 
} 

@Override 
public void onBackPressed() { 
    //no exit 
} 
} 

,這我getClearCacheIntent()方法

public static Intent getClearCacheIntent() { 

    Intent intent = new Intent(); 

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 

    return intent; 
} 

這些後,你的啓動畫面在屏幕上停留2秒鐘。做任何你想要的=)