Fondamentalement, j'ai un écran de démarrage qui montre quand l'utilisateur lance l'application. L'écran de démarrage est censé ouvrir un site Web (un site Web qui sera montré plus tard) pour télécharger toutes les polices et images à mettre en cache pour que tout fonctionne plus lisse la première fois que vous exécutez l'application. Mais tout ce que vous voyez est un écran blanc en ce moment, le code fonctionne (testé) mais il affiche un écran de démarrage blanc au lieu d'un avec un logo et du texte dessus.Écran de démarrage complètement blanc?
Voici le code;
Splash.xml
<?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"
android:background="#4A4A4A">
<ImageView
android:id="@+id/logo"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:src="@drawable/logo"
android:layout_gravity="center" />
<TextView
android:text="@string/loading"
android:layout_gravity="center"
android:textColor="#FFA500"
android:textSize="15dp"
android:typeface="normal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<WebView
android:id="@+id/splashview"
android:layout_width="0px"
android:layout_height="0px"
android:layout_weight="0" />
</LinearLayout>
Splash.java
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class Splash extends Activity {
@Override
protected void onCreate(Bundle savedInstance) {
// TODO Auto-generated method stub
super.onCreate(savedInstance);
setContentView(R.layout.splash);
WebView webView = (WebView) findViewById(R.id.splashview);
webView.setWebChromeClient(new WebChromeClient());
webView.loadUrl("http://ngmat.site90.net/matsedel/");
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
Intent NGMat = new Intent("android.intent.category.SECONDARY");
startActivity(NGMat);
}
});
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
finish();
}
@Override
protected void onResume() {
super.onResume();
setContentView(R.layout.main);
}
}
J'ai supprimé l'ensemble onResume et maintenant ça marche! Merci pour la réponse rapide. Mais maintenant, chaque fois que je lance l'application, il affiche l'écran de démarrage. Devrais-je faire un booléen pour vérifier si splash est déjà affiché? – Unidan
L'enregistrement d'un booléen dans SharedPreferences est un moyen de le faire, mais comme @Colin l'a mentionné, vous ne savez pas nécessairement que vous avez mis en cache les bonnes données. Par exemple, si vous chargez l'application alors que ce site est en panne ou que vous n'avez pas de connexion, vous pouvez définir l'indicateur pour ne jamais afficher l'écran de démarrage même s'il n'a jamais mis en cache les données que vous vouliez. Pas sûr des détails de votre cas d'utilisation ici, mais je voulais juste mentionner certaines choses à considérer. – Aldryd