Как установить анимацию Лотти в качестве заставки в Android?

#java #android #android-studio #lottie

Вопрос:

В Android Studio вы можете установить рисоваемый экран в качестве заставки следующим образом:

splash_screen.xml в папке для рисования:

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@color/blue"/>
    <item
        android:drawable="@mipmap/ic_launcher_foreground"
        android:gravity="center"
        android:top="201dp"
        android:bottom="201dp"
        android:right="100dp"
        android:left="100dp"/>
</layer-list>
 

Добавьте SplashTheme в styles.xml:

 <style name="SplashTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="android:background">@drawable/splash_screen</item>
    <item name="android:windowAnimationStyle">@null</item>
</style>
 

Класс SplashActivity (не имеет макета):

 public class SplashActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();
    }
}
 

И, наконец, в Манифесте удалите фильтр намерений из MainActivity и добавьте его в SplashActivity:

 <activity
    android:name=".SplashActivity"
    android:theme="@style/SplashTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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

<activity android:name=".MainActivity" />
 

И это все. Итак, вместо рисоваемой, как мне добавить анимацию Лотти? Я знаю, что это возможно, потому что я видел, как многие приложения загружали анимацию сразу после открытия. Я погуглил этот вопрос, и предоставленные ответы, без обид, от не очень умных людей, потому что они сказали добавить новое действие запуска, которое содержит макет с анимацией и воспроизводит его до конца или использует handler.postDelayed . Цель анимации должна состоять в том, чтобы показать пользователю что-то другое, кроме пустого экрана, во время загрузки приложения. Почему вы намеренно добавить задержку для пользователя, которая не является частью времени загрузки?