Простой Splash Screen для Android приложения

Привет всем! Увлекаетесь разработкой под Android? Если да, то вы могли замечать, что белый (сейчас уже может быть и не белый) пустой экран при первой загрузке приложения может занять какое-то время. Ребята из гугла того же мнения, а потому во многих их приложениях есть такая штука как Splash Screen.

Сплеш в Гугл фото

Его пользователь видит пока приложение загружает всё что нужно. Решений есть несколько, но самым простым и быстрым мне показалось то, о котором я сегодня расскажу. Но заранее хочу уточнить, что мы используем его не для загрузки каких-то крупных объемов данных или подобного. Он нам нужен лишь чтобы скрасить загрузку основной активности, где уже и будут происходить все необходимые подгрузки. И да, второй и последующие запуски могу сократить время видимости этого экрана. Это не плохо и даже хорошо, но я видел когда-то как разработчики добавили таймер для Splash Screen. Почему это решение плохое? Ну, вот таймер стоит на 3 секунды, а приложению нужна бы была всего одна. Разница не особо велика, но пользователи ведь явно не на красивую картинку посмотреть пришли.

Splash Screen

Для отображения этого Splash Screen нам не нужны никакие layout или даже view. Они позволяют более тонко всё настроить, но их создание требует времени, а мы хотим показать этот сплеш как можно скорее. Потому создаём пустую Activity, единственная цель которой – запуск вашей MainActivity.

Активность буквально пуста, она сразу же после создания запускает MainActivity и заканчивает свою работу.

Но где взять содержимое? В стилях! Я ещё добавил прозрачные панель навигации и статусбар, так как так будет красивее. А содержимое экрана указано в windowBackground.

Светлый Splash

То, о чем бы стоило сказать заранее, для корректного отображения на разных экранах в ресурсы нужно будет добавить несколько версий изображения разных размеров. Небольшой лишний груз в плане веса, но бандлы должны срезать лишнее, если вы публикуете приложения не в apk.

Можно ещё для night версии добавить тёмную версию, т.к. в последний год тёмная тема стала тем, что само собой должно быть.

Для этого просто дублируем ресурс и указываем другой цвет фона.

Та же картинка, но фон другой. Скорее всего подойдёт не всем

На этом всё, ваш Splash Screen готов! Только не отобразить в лаунчере именно Splash активность:

И теперь вот совсем всё, можно запускать!

Почти как планировалось…

Идеальное ли решение? Скорее всего нет, но очень простое 😀

О. Правда на новой miui такие экраны в моих и не только приложениях получили небольшое затемнение. Не уверен почему, но как только разберусь внесу правки (если честно, только сейчас про это вспомнил, хотя проблема появилась ещё в сентябре. Но материал написан, так что буду разбираться)

Ещё полезное:

Добавить комментарий