Как сделать экран-заставку (экран, видимый, когда приложение запускается)?

У меня есть простое приложение, оно запускается, канал xml загрузок от сети, можно просмотреть список новостей и затем считать детали для выбранного сообщения печати. То, что я хотел бы сделать, имеют экран-заставку, означая, как только Вы нажимаете приложение, это должно отобразить изображение (название приложения в моем случае) и затем отобразить список новостей только после того, как они загрузились.

Я читал о подобном (я думаю), проблемы, и обычно люди говорят для использования FrameLayout, но я не могу действительно уладить его. Я не уверен, может ли это быть сделано в первом действии, которое запускается, возможно, я должен просто отобразить это изображение всплеска в одном действии и только затем активности вызова, отображающей мой список новостей?

Я знаю, что на iPhone можно установить экран-заставку в настройках приложения при разработке, было бы хорошо иметь эту функциональность в декларации приложения андроида...

18
задан pambuk 9 February 2010 в 03:24
поделиться

1 ответ

Android предлагает вам использовать экран-заставку при выполнении длительных вычислений при запуске. Вот выдержка с веб-сайта разработчика Android - Проектирование с учетом отзывчивости:

«Если у вашего приложения есть длительная начальная фаза настройки, подумайте о том, чтобы как можно быстрее показать экран-заставку или визуализировать главное представление и заполнить информацию асинхронно. В любом случае вы должны каким-то образом указать, что прогресс выполняется, чтобы пользователь не почувствовал, что приложение зависло ». - Сайт разработчика Android

. Вы можете создать действие, отображающее диалог выполнения, при использовании AsyncTask для загрузки xml-канала из сети, его анализа, сохранения в базе данных (при необходимости), а затем запустить действие, которое отображает Ленты новостей. Закройте всплывающее действие, вызвав finish ()

Вот скелет кода:


public class SplashScreen extends Activity{
   @Override
   public void onCreate(Bundle savedInstanceState){
      super.onCreate(savedInstanceState);
      // set the content view for your splash screen you defined in an xml file
      setContentView(R.layout.splashscreen);

      // perform other stuff you need to do

      // execute your xml news feed loader
      new AsyncLoadXMLFeed().execute();

   }

   private class AsyncLoadXMLFeed extends AsyncTask<Void, Void, Void>{
      @Override
      protected void onPreExecute(){
            // show your progress dialog

      }

      @Override
      protected Void doInBackground(Void... voids){
            // load your xml feed asynchronously
      }

      @Override
      protected void onPostExecute(Void params){
            // dismiss your dialog
            // launch your News activity
            Intent intent = new Intent(SplashScreen.this, News.class);
            startActivity(intent);

            // close this activity
            finish();
      }

   }
}

надеюсь, что это поможет!

35
ответ дан 30 November 2019 в 07:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: