Блог
  • Начало
  • Обо мне
  • Обратная связь

Делаем Splash Screen (картинку при запуске приложения) в Android

Дата и время: 10 октября 2015 г. 13:29 | Категория: Android

Наконец-то у меня дошли руки до полноценного изучения разработки под Android без применения кроссплатформенных фреймворков. Разработку я веду в Android Studio 1.3 и сегодня расскажу как сделать Splash Screen, т.е. картику на весь экран при запуске Android приложения.

Я буду использовать фото вот этого зверя.

Кошка
Картинка с прозрачным фоном и будет хорошо смотреться на всех разрешениях дисплея.

Приступим к реализации.

1. Создайте новый проект из шаблона Blank Activity.
2. Добавьте в папку drawable вашего проекта изображение для Splash Screen. Как я уже упоминал, в моём случае это будет cat.png
3. Создайте новый файл splash_screen.xml в папке layout со следующим содержимым.

<?xml version="1.0" encoding="utf-8"?>>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <!-- Здесь, cat - имя вашего изображения. -->
    <ImageView android:id="@+id/splash_screen" android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:src="@drawable/cat"
        android:layout_gravity="center"/>

</LinearLayout>
4. Создайте новый класс активити SplashScreenActivity и добавьте в него следующий код, при этом не удаляйте в нём строку, начинающуюся с package.
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.os.Handler;

public class SplashScreenActivity extends Activity {

    // Время в милесекундах, в течение которого будет отображаться Splash Screen
    private final int SPLASH_DISPLAY_LENGTH = 2000;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash_screen);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                // По истечении времени, запускаем главный активити, а Splash Screen закрываем 
                Intent mainIntent = new Intent(SplashScreenActivity.this, MainActivity.class);
                SplashScreenActivity.this.startActivity(mainIntent);
                SplashScreenActivity.this.finish();
            }
        }, SPLASH_DISPLAY_LENGTH);
    }
}
5. Откройте AndroidManifest.xml вашего приложения, объявите в нём SplashScreenActivity стартовым, а MainActivity без каких либо параметров. Место объявления будет выглядеть следующим образом.
        <activity
            android:name=".SplashScreenActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity" />
6. Всё, готово. Запускаем и радуемся.
Splash Screen


Готовый проект можно скачать у меня на Bitbucket.

comments powered by Disqus
Select language:
  • Русский
  • English

  • Программирование

    Python C++ JavaScript

    Веб-разработка

    Django ASP.NET

    Мобильная разработка

    Windows Phone Android

    Разработка игр

    Unity3d Blender

    Артем Устимов © 2014