Gewusst wie: hinzufügen spinner im splash-screen in android phonegap-app
Arbeite ich an einer android-Anwendung mit Phonegap + Jquery mobile, und ich habe einen splash-Bildschirm beim starten der app, aber es ist eine statische png-Datei, nun meine Kunden Fragen immer wieder nach einigen Ladeanzeige wie spinner oder Ladebalken in der splash-Bildschirm, während der Benutzer darauf wartet die app geladen werden.
Folge ich einem Beispiel zu zeigen, den Fortschritt-bar im splash-screen, aber es funktioniert nicht, unten ist es mein code.
Haupt-java:
super.onCreate(savedInstanceState);
final Activity activity = this;
final ProgressBar progessBar1;
View footer = View.inflate(getContext(), R.layout.spinner, null);
root.addView(footer);
progessBar1 = (ProgressBar) findViewById(R.id.progressBar1);
this.appView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
activity.setProgress(progress * 1000);
if(progress < 100 && progessBar1.getVisibility() == ProgressBar.GONE) {
progessBar1.setVisibility(ProgressBar.VISIBLE);
}
progessBar1.setProgress(progress);
if(progress == 100) {
progessBar1.setVisibility(ProgressBar.GONE);
}
Log.d("Progress", progress+"");
}
});
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.setStringProperty("loadingDialog", "Wait, loading packages ...");
super.loadUrl("file:///android_asset/www/index.html", 12000);
super.setIntegerProperty("loadUrlTimeoutValue", 12000);
und die spinner.xml in der res/layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progressBar1"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:maxHeight="10dip"
android:minHeight="10dip" />
</LinearLayout>
aber es nicht zeigen, den Fortschritt-bar.
Meine Fragen:
-
jemand helfen kann, zu zeigen, wo ich falsch gemacht habe, danke.
-
anderen Weg, dies zu tun, eigentlich habe ich nur zeigen wollen, spinner, auf den splash-screen, wird das tun.
InformationsquelleAutor Derrick.X | 2013-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, dass Ihr splash-Bild mit transparenten hintergrund.
Splashscreen Schweine den ganzen Platz auf dem Bildschirm ausblenden der Statusleiste hinter sich. Ich habe versucht, zu bringtofront() in der Statusanzeige, die auch zeigt es nicht über die splash-screen.
Ich versuchte Ihren code ausführen, es wirft nullpointer-Ausnahme auf
weil appView null ist bei dieser Linie.
Änderte ich den code, der dem folgenden((ich.e Last-url vor setwebchromeclient), und es zeigt den splash-screen und der Statusleiste zusammen.
Dein code ist ok. Keine änderung erforderlich ist. Der splash.png (oder splash.9.png) mit transparentem hintergrund. Ich benutze paint.net für die Bearbeitung von Bildern.
Der Fortschrittsbalken läuft hinter dem splash-screen. Wenn Sie das Kontrollkästchen logcat der progress-Wert angezeigt wird.
danke für die Antwort, habe ich versucht zu ändern, hintergrund transparent, aber immer noch nicht sehen können, es gerade schwarzen hintergrund.
Ich versuchte Ihren code ausführen und Gefundene Probleme. Ich aktualisiert meine Antwort entsprechend.
InformationsquelleAutor catimos
Diese auch nicht so Aussehen, wie Sie es wollen, glaube ich. Hinzugefügt wurde die gleiche ProgressBar-widget auf einen Punkt, und es war das gleiche (hässliche) loading bar--auf meinem droid3, mindestens--, zeigt sich auf der OS-browser, wenn Sie Ihre Suche auf eine Webseite über den browser. Das ist nicht gut für das "native" look and feel".
ein html - /css - /javascript-Lösung wäre die einfachste alternative ist hier
InformationsquelleAutor obimod
Ja, Sie werden immer nullpointer exception, weil die id der progressbar in Ihrem code nicht mit der id im layout-Datei.
Folgende Zeile
gibt an der Strecke keine.42 für null-Zeiger-Ausnahme.
Den Fortschritt bar-id in Ihrem splash.xml ist progressBar1. in der Erwägung, dass
Die folgende Zeile in Ihrem code verwendet progressbar1
Wenn Sie den code Debuggen die variable progessBar1 nach dem ausführen der obigen Zeile null sein wird.
Beheben und den splash-screen anzeigen sollte, mit dem Fortschrittsbalken.
InformationsquelleAutor catimos