Пытаюсь сделать splash screen, но оно ломает мне проект и сама не показывается в Android

Задача сделать SplashScreen как в ютубе/вконтакте и других приложениях. Но оно не показывается и в процессе она сломала мне ImageSwitcher из активити и она больше не показывает никаких картинок. Я следовал этим статьям и я не знаю что я не так сделал:

  1. #1
  2. #2
  3. #3

Я пробовал каждый из вариантов, но либо оно не запускается, либо не показывается.

  • Вот моя разметка:

  • background_splash.xml, тут указана сама тема

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

    <!-- Цвет фона, предпочтительно как в главной теме -->

    <!-- Лого приложения - 144dp версия иконки приложения -->
    <item>

        <bitmap
            android:src="@mipmap/ic_launcher"
            android:gravity="center"/>

    </item>

</layer-list>

посередине стоит значок приложения, а в заднем фоне должен быть задний фон, но я ее убрал когда пытался отладить.

  • и в styles.xml моя тема объявляется под именем AppTheme.Launcher:

     <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar" />
     <style name="AppTheme.Launcher">
         <item name="android:windowBackground">@drawable/background_splash</item>
     </style>
    
  • в манифесте указана моя тема на intent-filter

     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.INTERNET" />
    
     <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/Theme.InSport">
         <activity android:name=".ChatOneToOne"></activity>
         <activity android:name=".MsgCenter" />
         <activity android:name=".addToTeam" />
         <activity android:name=".inTeam" />
         <activity android:name=".Team" />
         <activity android:name=".ShowTurnirs" />
         <activity android:name=".Profile.Info" />
         <activity android:name=".Profile.friendsRequest" />
         <activity android:name=".Profile.training" />
         <activity android:name=".Profile.EnemyProfile" />
         <activity android:name=".findtest" />
         <activity
             android:name=".Sign.LoadFrame"
             android:theme="@style/AppTheme.Launcher">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
    
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
         <activity android:name=".Sign.BackFrame" />
         <activity android:name=".Profile.ProfileEdit" />
         <activity android:name=".Profile.Friends" />
         <activity
             android:name=".HomeNav"
             android:label="@string/title_activity_home_nav"
             android:theme="@style/Theme.InSport.NoActionBar" />
         <activity android:name=".Sign.SignUp" />
         <activity android:name=".Sign.SignIn" />
     </application>
    
  • а дальше в LoadActivity, в первом активити которое запускается в OnCreate указана основная тема согласно статье:

     public class LoadFrame extends AppCompatActivity {
     private ImageSwitcher mImageSwitcher;
    
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         setTheme(R.style.Theme_InSport);
         super.onCreate(savedInstanceState);
         setContentView(R.layout.load_frame);
         getSupportActionBar().hide();
         FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
         if (user != null){
             startActivity(new Intent(LoadFrame.this, HomeNav.class));
             finish();
         }
         mImageSwitcher = findViewById(R.id.imageSwitcher);
         Animation inAnimation = new AlphaAnimation(0, 1);
         inAnimation.setDuration(1000);
         Animation outAnimation = new AlphaAnimation(1, 0);
         outAnimation.setDuration(1000);
    
         mImageSwitcher.setInAnimation(inAnimation);
         mImageSwitcher.setOutAnimation(outAnimation);
         //cw.setOnClickListener(v -> );
    
         if (user == null) {
             Thread t = new Thread(new Runnable() {
                 public void run() {
                     try {
                         TimeUnit.SECONDS.sleep(2);
                         mImageSwitcher.postDelayed(runn1, 1000);
                         TimeUnit.SECONDS.sleep(3);
                         runOnUiThread(runn2);
                     } catch (InterruptedException e) {
                         e.printStackTrace();
                     }
                 }
             });
             t.start();
         }
     }
    
     Runnable runn1 = new Runnable() {
         public void run() {
             mImageSwitcher.showNext();
         }
     };
    
     Runnable runn2 = new Runnable() {
         public void run() {
             startActivity(new Intent(LoadFrame.this, BackFrame.class));
         }
     };
    
    
     @Override
     protected void onResume() {
         super.onResume();
    
         new Handler().postDelayed(new Runnable() {
             @Override
             public void run() {
                 //startActivity(new Intent(LoadFrame.this, BackFrame.class));
                     /*new Handler().postDelayed(new Runnable() {
                         @Override
                         public void run() {
                             startActivity(new Intent(LoadFrame.this, BackFrame.class));
                         }
                     });*/
    
             }
         }, 2000);
    
    
        /* Handler end;
         end = new Handler();
         end.postDelayed(new Runnable() {
             @Override
             public void run() {
    
             }
         }, 3000);*/
     }
    }
    

Если что то не понятно обращайтесь пожалуйста ибо я и сам не понимаю что не так


Ответы (0 шт):