Главная » Делаем заставку Splash Screen для приложения | |
Еще в начале пути изучения основ Android программирования вы, скорее всего, не избежали прохождения урока о создании приложения с двумя activity. Сегодняшний урок будет немного перекликаться с этим старым уроком о двух рабочих окнах. Но это и хорошо, ведь повторение - мать учения. В этом уроке мы сделаем приложение, перед запуском основного рабочего экрана которого будет высвечиваться заставка Splash Screen на 3 секунды. Такую технику можно применить и просто для красоты, и для того, чтобы, например, пока грузиться основное приложение, пользователь наблюдал не повисший экран, а красивую заставку. Начнем с создания нового проекта, выберите шаблон Blank Activity, минимальная версия Android в принципе любая. Что будет в приложении: два рабочих activity, два xml файла, задающих для соответствующих activity интерфейс и картинка, которую мы используем для создания заставки. Откроем файл activity_main.xml и добавим туда элемент ImageView, котором разместиться картинка для заставки:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#FFFFFF">
<ImageView
android:src="@drawable/splash_bear"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitXY"/>
</LinearLayout>
Картинку можете найти любую, я использую эту:
Поместите ее в папку res/drawable. У меня она, как видно из кода, имеет название splash_bear. Теперь перейдем к java классу MainActivity.java. Здесь с помощью класса Thread мы создаем поток, в котором будет выполняться отображение заставки на протяжении 3 секунд (3000 миллисекунд). То есть, мы с помощью Thread создаем задержку, на которой будет отображаться изображение:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Создаем новый поток:
Thread splash_time = new Thread()
{
public void run()
{
try
{
//Целое значение время отображения картинки:
int SplashTimer = 0;
//Запускаем цикл длиной в 3 секунды:
while(SplashTimer < 3000) {
sleep(100);
SplashTimer = SplashTimer +100;
};
}
catch (InterruptedException e) {
e.printStackTrace(); }
finally {
//Закрываем activity:
finish();
}
}
};
splash_time.start();
}
}
Если запустить приложение сейчас, то вы увидите на три секунды изображение нашего медведя, а потом приложение закроется (finish ()). Теперь нам нужно создать второе activity, его интерфейс и переход на него с первого, содержащего заставку activity. Создаем новый java класс по имени SecondActivity, наследуем его от Activity (extends Activity), добавляем метод onCreate ():
import android.app.Activity;
import android.os.Bundle;
public class SecondActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
Создаем новый xml файл в папке res/layout по имени second.xml и добавим ему простенький код с текстом и картинкой:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv"
android:text="Приветствую во втором activity"
android:textSize="12pt"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv"
android:src="@drawable/ic_launcher"
android:layout_gravity="center"/>
</LinearLayout>
Осталось только добавить в класс SecondActivity.java в метод onCreate () строку:
setContentView(R.layout.second);
Напоследок остается только вернуться к первому классу с заставкой MainActivity.java и добавить туда в код потока Thread переход на второй экран:
startActivity(new Intent(MainActivity.this,SecondActivity.class));
Нужно не забыть о том, что созданную активность SecondActivity.java нужно добавить в AndroidManifest.xml:
<activity
android:name=".SecondActivity"
android:label="Splash Screen">
</activity>
На этом несложные манипуляции по созданию заставки для вашего приложения заканчиваются. Запускаем и проверяем результат:
Скриншоты с виртуального планшета не поражают красотой, но все таки приложение работает, как, надеюсь, и у вас! | |
|
Всего комментариев: 5 | |
| |