#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
. Цель анимации должна состоять в том, чтобы показать пользователю что-то другое, кроме пустого экрана, во время загрузки приложения. Почему вы намеренно добавить задержку для пользователя, которая не является частью времени загрузки?