2012-02-01 2 views
0

В некоторых играх запуск игры должен отображать название компании на мгновение, а затем отображать главное меню для запуска игры.Экран запуска игры для Android

Я хотел бы сделать что-то подобное. Но я не уверен, что мой путь является хорошим способом ...

В моем плане, я бы отобразить изображение запуска, а затем сделать программу спит в течение 1 секунды, а затем вывести на экран основное меню

Должен ли я использовать функцию ожидания, чтобы удерживать экран в течение секунды?

Если я хочу использовать флэш-изображение вместо статического изображения? Возможно ли это? Каков обычный способ сделать что-то подобное?

+0

Обычно люди делают это, потому что они загружают sth. вы можете захотеть отобразить изображение, поместить загрузку в фоновом режиме и поднять его, когда это будет сделано. – lynnyilu

+0

Для этого вы можете использовать поток пользовательского интерфейса и отображать статический экран в течение нескольких секунд. Обычно эта задача может выполняться с помощью задачи Thread или Async – Andy

ответ

0

Вы не должны спать в потоке пользовательского интерфейса. Вместо этого используйте AsyncTask. например

setContentView(<company name screen>) 
    new AsyncTask<Object, Object, Object>() { 
     protected Object doInBackground(Object... params) { 
      try { 
       // If you have nothing to do just sleep 
       Thread.sleep(<time duration>); 
      } catch (InterruptedException e) { 
       // handle this 
      } 
      return (Object)null; 
     } 

     protected void onPostExecute(Object result) { 
      // This runs on UI thread 
      setContentView(<your next screen>) 
     } 
    }.execute((Object) null); 
+0

, какие вещи будут загружаться при запуске игры? – George

+0

Я получил ошибку «не могу создать обработчик внутри потока, который не вызвал looper.prepare()» – George

+0

Посмотрев на другой поток этой ошибки, похоже, вы можете вызывать AsyncTask для потока, отличного от UI. Это недопустимо. http://stackoverflow.com/questions/5009816/android-cant-create-handler-inside-thread-that-has-not-called-looper-prepare – Sameer

0

вы можете проверить мой ответ here. Как я использовал AlertDialog, вы можете использовать AlertDialog без кнопок для этой цели.

Смежные вопросы