Jak zrobić ekran powitalny (ekran widoczny po uruchomieniu aplikacji)?
Mam prostą aplikację, uruchamia się, ładuje XML feed z sieci, można przeglądać listę newsów, a następnie czytać szczegóły wybranego newsa. To, co chciałbym zrobić, to mieć ekran powitalny, co oznacza, że jak tylko klikniesz aplikację, powinien wyświetlić obraz (Nazwa aplikacji w moim przypadku), a następnie wyświetlić listę wiadomości dopiero po załadowaniu.
Czytałem o podobnych (chyba) problemach i zazwyczaj ludzie mówią, aby używać FrameLayout, ale naprawdę nie mogę tego rozwiązać. Nie jestem pewien, czy to można to zrobić w pierwszej aktywności, która jest uruchomiona, może powinienem po prostu wyświetlić ten obraz powitalny w jednym działaniu i dopiero wtedy wywołać aktywność wyświetlającą moją listę wiadomości?
Wiem, że na iPhonie można ustawić ekran powitalny w ustawieniach aplikacji podczas tworzenia, byłoby miło mieć tę funkcjonalność w manifeście aplikacji Androida...
2 answers
Android sugeruje skorzystanie z ekranu powitalnego podczas wykonywania długich obliczeń przy starcie. Oto fragment strony programisty Androida-Projektowanie dla responsywności:
" jeśli Twoja aplikacja ma czasochłonną początkową fazę konfiguracji, rozważ pokazanie ekranu powitalnego lub renderowanie widoku głównego tak szybko, jak to możliwe i asynchronicznie uzupełnianie informacji. W obu przypadkach należy w jakiś sposób zaznaczyć, że postęp jest dokonywany, aby użytkownik zobacz, że aplikacja jest zamrożona."--Android Developer Site
Możesz utworzyć aktywność, która wyświetla okno postępu podczas korzystania z Asynktasku, aby pobrać kanał xml z sieci, przetworzyć go, zapisać go do bazy danych (w razie potrzeby), a następnie rozpocząć aktywność, która wyświetla kanały wiadomości. Zamknij działanie splash wywołując finish ()
Oto kod szkieletu:
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();
}
}
}
Mam nadzieję, że to pomoże!Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-09 03:37:42
Wiem, że jest to stare, ale dla tych z Was, którzy wciąż borykają się z tym problemem, możesz użyć tej prostej android-splash library, aby pokazać swój ekran powitalny.
SplashBuilder
.with(this, savedInstanceState)
.show();
Możesz ustawić SplashTask
, która będzie działać podczas wyświetlania ekranu powitalnego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-03 10:41:42