2017-05-01 1 views
-5

J'utilise écran de démarrage dans mon application android. Cela fonctionne bien avec sucette et versions supérieures mais ne fonctionne pas avec kitkat et versions inférieures. Le problème est dans menifest.xml mais je suis incapable de le réparer.Écran de démarrage ne fonctionne pas en kitkat et niveau de l'api inférieur en android

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:roundIcon="@mipmap/ic_launcher_round" 

    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".SplashScreenActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <meta-data 
      android:name="com.facebook.sdk.ApplicationId" 
      android:value="@string/facebook_app_id" /> 

     <intent-filter> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 


SplashScreenActivity.java

SplashScreenActivity public class activité {

public void onAttachedToWindow() { 
    super.onAttachedToWindow(); 
    Window window = getWindow(); 
    window.setFormat(PixelFormat.RGBA_8888); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_splash_screen); 

    StartAnimations(); 
    Thread background = new Thread() { 
     public void run() { 

      try { 
       // Thread will sleep for 5 seconds 
       sleep(3*1000); 

       // After 5 seconds redirect to another intent 
       Intent i=new Intent(getBaseContext(),MainActivity.class); 
       startActivity(i); 

       //Remove activity 
       finish(); 

      } catch (Exception e) { 

      } 
     } 
    }; 

    // start thread 
    background.start(); 



} 

private void StartAnimations() { 

    Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha); 
    anim.reset(); 
    LinearLayout l=(LinearLayout) findViewById(R.id.lin_lay); 
    l.clearAnimation(); 
    l.startAnimation(anim); 

    anim = AnimationUtils.loadAnimation(this, R.anim.translate); 
    anim.reset(); 
    ImageView iv = (ImageView) findViewById(R.id.logo); 
    iv.clearAnimation(); 
    iv.startAnimation(anim); 

} 

}


Dans res/Anim/alpha.xml

alpha.xml

<?xml version="1.0" encoding="utf-8"?> 
<alpha 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" 
    android:duration="3000" /> 
+0

montrent le code, le code d'activité –

+0

je pense Non prolem dans le fichier menifest.xml ... pouvez-vous publier le code java SplashScreenActivity? –

+0

Partagez aussi votre code java et votre xml. – JavadKhan

Répondre

1

Il est mon SplashScreen. Cela fonctionne pour Android 4.1 et supérieur.


SplashScreen.java

public class SplashScreen extends AppCompatActivity { 

    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splashscreen_layout); 

    } 

    @Override 
    protected void onStart() { 

     super.onStart(); 


     // load your stuff here ... 


     Intent intent = new Intent(SplashScreen.this, YourHomeActivity.class); 
     startActivity(intent); 
     finish(); 

    } 
} 


res/layout/splashscreen_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="false" 
    tools:context=".SplashScreen" 
    android:theme="@style/SplashTheme"> 

</android.support.design.widget.CoordinatorLayout> 


ajouter sur votre res/valeurs/styles.xml

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:windowBackground">@drawable/splashscreen_drawable</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
</style> 


res/drawable/splashscreen_drawable.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@color/colorPrimary"/> 

    <item> 
     <bitmap 
      android:gravity="center" 
      android:src="@drawable/your_icon" /> 
    </item> 

</layer-list> 


et mon AndroidManifest.xml

<application 

     [...] 

     > 
     <activity 
      android:name="com.your.package.app.SplashScreen" 
      android:label="@string/app_name" 
      android:theme="@style/SplashTheme"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     [...] 


Il regarde ceci sur: