Domanda

Ho una semplice applicazione, inizia, mangimi carichi xml dalla rete, è possibile sfogliare un elenco di notizie e poi leggere i dettagli per una notizia prescelto. Quello che vorrei fare è di avere una schermata iniziale, cioè non appena si fa clic su applicazione, che dovrebbe visualizzare un'immagine (nome dell'applicazione nel mio caso) e quindi visualizzare l'elenco notizia solo dopo che sono caricati.

Ho letto su problemi simili (credo), e di solito la gente dice di usare FrameLayout, ma non posso davvero risolverlo. Non sono sicuro se questo può essere fatto nella prima azione che viene lanciato, forse dovrei semplicemente visualizzare questa immagine Spruzzata in un'attività e solo allora chiamare attività che visualizza la mia lista notizia?

So che su iPhone è possibile impostare lo splash screen in impostazioni app durante lo sviluppo, sarebbe bello avere questa funzionalità in palese di app di Android ...

È stato utile?

Soluzione

Android suggerisce di prendere vantaggio di utilizzare uno splash screen durante l'esecuzione di lunghi calcoli sulle start up. Ecco un estratto da parte dello sviluppatore Android Sito web - Progettare per risposte:

"Se l'applicazione ha una fase di configurazione iniziale in termini di tempo, si consideri che mostra una schermata iniziale o rendere la vista principale il più rapidamente possibile e compilando le informazioni in modo asincrono. In entrambi i casi, si dovrebbe indicare in qualche modo è stato fatto che il progresso , per timore che l'utente percepisce che l'applicazione è congelato ". - Android Developer Site

È possibile creare un'attività che mostra una finestra di avanzamento durante l'utilizzo di un AsyncTask per scaricare il feed xml dalla rete, analizzarlo, conservarlo per un db (se necessario) e quindi avviare l'attività che visualizza il news feed. Chiudere il tonfo attività chiamando finitura ()

Ecco un codice di scheletro:


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

   }
}

speranza che aiuta!

Altri suggerimenti

So che questo è vecchio, ma per quelli di voi che stanno ancora affrontando questo problema, è possibile utilizzare questo semplice href="https://github.com/HadadTomer/AndroidSplash" biblioteca -splash per mostrare il vostro splash screen.

SplashBuilder
        .with(this, savedInstanceState)
        .show();

È possibile impostare SplashTask che eseguirà mentre è visualizzata la schermata iniziale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top