2011-06-19 41 views
8

Tôi đang phát triển một ứng dụng, hiện tại khi nó đang tải từ điểm onCreate, tôi chỉ có một màn hình màu đen (cho đến khi ứng dụng được đặt chân). Nhìn vào các ứng dụng khác, họ có logo của công ty hoặc hình ảnh thú vị bật lên trong vài giây, ai đó có thể cho tôi biết cách thực hiện việc này?Hình ảnh khi khởi động/tải

Và nếu bạn có thể đặt nó hiển thị trong một thời gian tối thiểu?

Trả lời

10

Tạo một hoạt động mới hiển thị hình ảnh trong vài giây và chuyển hướng đến các hoạt động chính của bạn:

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(); 
    } 
} 

Đặt hình ảnh của bạn như là nền tảng cho hoạt động này. Hy vọng rằng sẽ giúp. Chúc may mắn!

+2

Nhưng hãy sử dụng 'Handler' thay vì 'TimerTask'. – inazaruk

+0

Bạn đã kiểm tra mã này trên trình mô phỏng hoặc thiết bị thực? Không có 'Timer' trên Android! –

+2

Bộ hẹn giờ không phải là một đối tượng Android, một đối tượng java của nó. Đó là mã đang hoạt động trong một trong các ứng dụng của tôi. Nó hoạt động trên cả thiết bị lẫn trình mô phỏng. Thêm thông tin sau vào danh sách nhập của bạn và bạn sẽ bị phạt: nhập java.util.Timer; nhập java.util.TimerTask; –

1

Hình ảnh khởi động này còn được gọi là 'màn hình giật gân'. Here bạn có thể tìm cách tạo màn hình giật gân.

0

Nhu cầu của bạn là callign Splash Screen. Đây là mã màn hình của tôi.

Chỉ cần thêm hoạt động mới và đặt ứng dụng để mở hoạt động này.

public class SplashActivity kéo dài 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 
} 
} 

và phương pháp getClearCacheIntent của tôi() này

public static Intent getClearCacheIntent() { 

    Intent intent = new Intent(); 

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

    return intent; 
} 

sau đó, màn hình của bạn vẫn trên màn hình trong 2 giây. Hãy làm bất cứ điều gì bạn muốn =)

Các vấn đề liên quan