wake-up-neo.com

Android Begrüßungsbildschirm

Ich entwickle eine Anwendung, die im Grunde genommen viele Daten zu Beginn der Anwendung selbst herunterlädt und in ListActivity anzeigt. Ich plane, einen Begrüßungsbildschirm anzuzeigen, bis die Daten geladen sind.

Bis jetzt waren alle meine Versuche erfolglos. Ich habe die von anddev.org erwähnten Methoden ausprobiert, aber mein Problem ist, dass die Hauptaktivität beginnen sollte, aber der Begrüßungsbildschirm sichtbar sein sollte, bis ich meine ListActivity auffülle. Kurz gesagt, ich muss die folgenden Schritte ausführen:

  1. Starte meine Haupttätigkeit.
  2. Zeigen Sie den Begrüßungsbildschirm an.
  3. Führen Sie den Prozess im Hintergrund aus.
  4. Beenden Sie den Begrüßungsbildschirm, wenn die Verarbeitung abgeschlossen ist, und zeigen Sie die Hauptliste an.

Hoffe du verstehst wie es ist ....

80
JaVadid

dies ist der beste Weg, um einen Begrüßungsbildschirm zu erstellen: http://Android-developers.blogspot.de/2009/03/window-backgrounds-ui-speed.html

Ich habe lange danach gesucht, von Androids Docs aus. Wenn Sie diese schwarzen Bildschirme vermeiden möchten, müssen Sie ein Thema mit windowBackground erstellen.

<resources>
    <style name="Theme.Shelves" parent="Android:Theme">
        <item name="Android:windowBackground">@drawable/background_shelf</item>
        <item name="Android:windowNoTitle">true</item>
    </style>
</resources>

Und stellen Sie dieses Thema als Thema für Ihre Hauptaktivität ein ... TADA, Begrüßungsbildschirm von der ersten Sekunde an.

Wenn Sie einen komplexen Hintergrund wünschen und nicht nur ein Bild, das gestreckt wird, um es auszufüllen, können Sie Drawables verwenden. Hier ist ein Beispiel für eine Ebenenliste, bei der das Logo mit einem schwarzen Hintergrund zentriert bleibt:

<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >

    <item Android:drawable="@color/black">
    </item>
    <item>
        <bitmap
            Android:gravity="center"
            Android:src="@drawable/logo"
            Android:tileMode="disabled" >
        </bitmap>
    </item>
</layer-list>
59
Raanan

Beispiel für einen Begrüßungsbildschirm:

public class MainActivity extends Activity {
    private ImageView splashImageView;
    boolean splashloading = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        splashImageView = new ImageView(this);
        splashImageView.setScaleType(ScaleType.FIT_XY);
        splashImageView.setImageResource(R.drawable.ic_launcher);
        setContentView(splashImageView);
        splashloading = true;
        Handler h = new Handler();
        h.postDelayed(new Runnable() {
            public void run() {
                splashloading = false;
                setContentView(R.layout.activity_main);
            }

        }, 3000);

    }

}
1
kablu
  1. Starte meine Haupttätigkeit.
  2. Zeigen Sie den Begrüßungsbildschirm an.
  3. Führen Sie den Prozess im Hintergrund aus.
  4. Beenden Sie den Begrüßungsbildschirm, wenn die Verarbeitung abgeschlossen ist, und zeigen Sie die Hauptliste an.

Ich habe es auf diese Weise versucht, aber das Problem ist; Es wird die Hauptaktivität angezeigt, bevor die Aktivität des Begrüßungsbildschirms gestartet wird.

Ich habe es so gemacht:

  1. Starten Sie den Begrüßungsbildschirm
  2. Wenn der Vorgang abgeschlossen ist, starten Sie die "Hauptaktivität"
  3. Vergessen Sie nicht, die Zurück-Taste zu betätigen, damit die App in der Hauptaktivität geschlossen wird. Andernfalls wird zum Begrüßungsbildschirm zurückgekehrt (Endlosschleife)

Mein Problem ist, wie man "das Menü der Begrüßungsbildschirmaktivität anzeigen" deaktiviert, indem man die Menü-Taste drückt.

Bearbeiten:

Showmenü deaktivieren:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // getMenuInflater().inflate(R.menu.activity_main, menu);
    return false;
}

@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {       
    // return super.onMenuItemSelected(featureId, item);
    return false;
}
1
Gabe