Splash activity android java

Splash activity android java

Splash Screen is most commonly the first startup screen which appears when App is opened. In other words, it is a simple constant screen for a fixed amount of time which is used to display the company logo, name, advertising content etc.

Normally it shows when app is first time launched on android device or it may be some kind of process that is used to show screen to user just before the app loads completely.

This tutorial will help you to learn How to create Splash screen in your Android app.

Splash Screen Implementation Method In Android:

Method 1 of implementing Splash Screen:

Create a thread and set time to sleep after that redirect to main app screen.

/****** Create Thread that will sleep for 5 seconds****/ Thread background = new Thread() < public void run() < try < // Thread will sleep for 5 seconds sleep(5*1000); // After 5 seconds redirect to another intent Intent i=new Intent(getBaseContext(),FirstScreen.class); startActivity(i); //Remove activity finish(); >catch (Exception e) < >> >; // start thread background.start();

Method 2 of Implementing Splash Screen:

Set time to handler and call Handler().postDelayed, it will call run method of runnable after set time and redirect to main app screen.

Читайте также:  Защита для php скриптов

Handlers are basically background threads which allows you to communicate with the UI thread (update the UI).

Handlers are subclassed from the Android Handler class and can be used either by specifying a Runnable to be executed when required by the thread, or by overriding the handleMessage() callback method within the Handler subclass which will be called when messages are sent to the handler by a thread.

There are two main uses for a Handler:

a) To schedule messages and Runnables to be executed at some point in the future

b) To enqueue an action to be performed on a different thread than your own.

new Handler().postDelayed(new Runnable() < // Using handler with postDelayed called runnable run method @Override public void run() < Intent i = new Intent(MainSplashScreen.this, FirstScreen.class); startActivity(i); // close this activity finish(); >>, 5*1000); // wait for 5 seconds

Splash Screen Image Size For Different Screen Size:

Android provides support for multiple screen sizes and densities, reflecting the many different screen configurations that a device may have. You can prefer below sizes to support Splash Screen on different size smartphones.

Android divides the range of actual screen sizes and densities into:

A set of four generalized sizes: small, normal, large, and xlarge

A set of six generalized densities:

  • ldpi (low) ~120dpi (240x360px)
  • mdpi (medium) ~160dpi (320x480px )
  • hdpi (high) ~240dpi (480x720px)
  • xhdpi (extra-high) ~320dpi (640x960px)
  • xxhdpi (extra-extra-high) ~480dpi (960x1440px)
  • xxxhdpi (extra-extra-extra-high) ~640dpi (1280x1920px)

Splash Screen Example in Android Studio

With the help of this tutorial we will cover implementation of splash screen in two scenarios. First will show splash screen using Handler and second we will not create a layout file for splash screen activity. Instead, specify activity’s theme background as splash screen layout.

In the first below example we will see the use of Splash Screen using Handler class.

Below you can download code, see final output and step by step explanation of example:

Step 1 : Create a new project and name it Splashscreen

Step 2: Open res -> layout -> activity_main.xml (or) main.xml and add following code:

In this step we simply added a code to display layout after Splash screen.

Step 3: Create a new XML file splashfile.xml for Splash screen and paste the following code in it.

This layout contains your app logo or other product logo that you want to show on splash screen.

Step 4: Now open app -> java -> package -> MainActivity.java and add the below code.

package abhiandroid.com.splashscreen; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); >>

Step 5: For Splash Screen we will create a separate splash activity. Create a new class in your java package and name it as SplashActivity.java.

Step 6: Add this code in SplashActivity.java activity. In this code handler is used to hold the screen for specific time and once the handler is out, our main Activity will be launched. We are going to hold the Splash screen for three second’s. We will define the seconds in millisecond’s after Post Delayed()<> method.

1 second =1000 milliseconds.

Post Delayed method will delay the time for 3 seconds. After the delay time is complete, then your main activity will be launched.

SplashActivity.java

package abhiandroid.com.splashscreen; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; /** * Created by AbhiAndroid */ public class SplashActivity extends Activity < Handler handler; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.splashfile); handler=new Handler(); handler.postDelayed(new Runnable() < @Override public void run() < Intent intent=new Intent(SplashActivity.this,MainActivity.class); startActivity(intent); finish(); >>,3000); > >

Step 7: Open AndroidManifest.xml file and make your splashactivity.java class as Launcher activity and mention the Main Activity as another activity.

AndroidManifest.xml

Now run the App and you will see Splash screen before the main layout loads.

Splash Screen Example 2 In Android Studio:

The second way is little different to implement Splash screen. In this example we are going to specify the Splash screen background as an activity’s theme background.

Below you can download code, see final output and step by step explanation of example:

Step 1: Create a new project and name it Splashscreen2

Step 2: Open res -> layout -> activity_main.xml (or) main.xml and add following code:

In this step the code to display layout after Splash screen is added.

Step 3: Create a new xml layout in res ⇒ drawable ⇒ splash_screenbackground.xml

In this example we will not create a layout file for Splash screen activity. Instead we will use activity theme background for Splash screen layout.

Here, we use a layer list to show the image in the center of splash screen. It is necessary to use a bitmapped image to display the image. ( image should be PNG or JPG) and splash_background_color as an background color.

The following is an example code of a drawable resource using layer-list.

Add below code in res ⇒ drawable.xml ⇒ splash_screenbackground.xml

Step 4: Now open res ⇒ values ⇒ colors.xml

Make sure to add below code in colors.xml

  #3F51B5 #303F9F #FF4081 #5456e1 

Step 5: Add the below code in res ⇒values ⇒ styles.xml

Now we create a theme for the splash screen activity. We create a custom theme for the splash screen Activity, and add to the file values/styles.xml
res ⇒values ⇒ styles:

SplashTheme – When we declare the window background, it will removes the title bar from the window, and show us the full-screen. The file is shown here with a style named SplashTheme.

     

Step 6: Add the below code in MainActivity.java and Create a new SecondActivity.java for splash screen

Here we will not define the setcontentview() for the Splash screen activity because we directly apply the Splash Theme on it. Now we just have to launch the Activity(Second Activity) and then finish the activity by calling finish() method.

MainActivity.java

package abhiandroid.com.splashscreen2; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); startActivity(new Intent(MainActivity.this,SecondActivity.class)); // close splash activity finish(); >>

SecondActivity.java

package abhiandroid.com.splashscreen2; import android.app.Activity; import android.os.Bundle; /** * Created by AbhiAndroid */ public class SecondActivity extends Activity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); >>

Step 7: Theme must be assigned to Main Activity in Android Manifest
Like – (android:name=”.MainActivity”android:theme=”@style/SplashTheme”> )
Here is the full code of AndroidManifest:

Now run the App and you will Splashscreen launch before the main activity.

Источник

SplashScreen в Android: пишем заставку

SplashScreen в Android, называется заставка перед запуском основного приложения, она позволяет устанавливать изображения, логотипы, короткие видео ролики, текст поясняющего или предупреждающего содержания.

Новый проект

В android studio давайте создадим новый проект, назовём его My Splash Screen. В папку Drawable добавим изображения (2 штуки), с локального диска. Я их заранее подготовил, скопируем, нажмем правой кнопкой на эту папку drawable и вставим. Как видите они появились android и logo.

SplashScreen в Android: пишем заставку

Создаем слой

Добавим новый слой для нашего splashscreen, назовём его точно так же splashscreen. Создадим новый класс java SplashScreen. Этот класс будет наследоваться от класса Activity.

Изменим тип слоя LinearLayout в splashscreen.xml на RelativeLayout. Из компонентов Images добавим в разметку элемент ImageView. В свойствах укажем рисунок android, нажмем Ok.Изменим расположение wrap_content на match_parent. Изменим рисунок на logo, тип масштабирование установим matrix. Добавим еще один ImageView и зададим ему изображение android. Скопируем ранее внесенные свойства расположения на match_parent. Сохраним наш проект.

Настройка манифеста

В файле AndroidManifest.xml нам нужно будет описать наш splashscreen activity, я скопирую описание MainActivity и изменю название на SplashScreen. Для MainActivity в свойстве категории name заменю LAUNCHER на DEFAULT.

Изменим надпись Hello World! на другой текст, для этого в файле strings.xml добавим еще один строковый ресурс с именем name и в его свойства напишем название нашей программы — «КОМПЬЮТЕПАПИЯ».

В свойствах TextView изменим значение text на @string/name.

Код заставки SplashScreen

В файл SplashScreen.java добавим функцию onCreate, скопировав ее из MainActivity, изменим название слоя activity_main на splashscreen. Введем переменную типа int SPLASH_DISPLEY_LENGHT со значением 5000, это означает, что наш splashscreen будет отображаться 5 секунд, после этого произойдет переход на MainActivity.

private final int SPLASH_DISPLAY_LENGHT = 5000;

В onCreate напишем новую функцию Handler через метод postDelayed, через вызов функции run вызовем MainActivity, через время указанное в SPLASH_DISPLEY_LENGHT.

new Handler().postDelayed(new Runnable() < @Override public void run() < Intent mainIntent = new Intent(SplashScreen.this, MainActivity.class); SplashScreen.this.startActivity(mainIntent); SplashScreen.this.finish(); >>, SPLASH_DISPLAY_LENGHT); >

Так же добавим функцию onBackPressed, это обработка нажатия на кнопку назад на телефоне.

@Override public void onBackPressed()

Тест в эмуляторе Android

Запустим эмулятор Android, что бы посмотреть, как работает наше приложение, как видим -splashscreen слой отображался 5 секунд, на нем не было изображений, и произошел переход в MainActivity.

SplashScreen в Android: пишем заставку

Разберемся, почему так происходит. Проблема содержится в файле splashscreen.xml в строках

app:scrCompat="@drawable/logo" app:scrCompat="@drawable/android"
android:scr="@drawable/logo" android:scr="@drawable/android"

Изменение времени отображения заставки

Предложенное по умолчанию значение, по каким-то причинам не отображает в приложении наши изображения. Перезапустим наше приложение в эмуляторе Android, и увидим, что все прекрасно работает, по истечении 5 секунд происходит переход на главную активность приложения.

SplashScreen в Android: пишем заставку

Изменим значение переменной SPLASH_DISPLEY_LENGHT с 5000 на 2000 и увидим при запуске, что интервал видимости splashscreen уменьшился до 2 секунд. Практически очень быстро появляется. Вернем значение 5000 обратно, и все работает, как и раньше.

Возможно различное масштабирование элемента imageView, я сделаю один слой невидимым через свойство visibili. Доступны типы: matrix, fitXY, fitStart, fitCenter, fitEnd, center, centerCrop, centerInside для отображения рисунков на экране.

SplashScreen в Android: пишем заставку

Полный текст AndroidManifest.xml

Полный текст strings.xml

 My SplashScreen КОМПЬЮТЕРАПИЯ  

Полный текст activity_main.xml

Полный текст splashscreen.xml

Полный текст MainActivity.java

package ru.maxfad.mysplashscreen; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); >>

Полный текст SplashScreen.java

package ru.maxfad.mysplashscreen; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; /** * Created by maxfad on 19.06.2017. */ public class SplashScreen extends Activity < private final int SPLASH_DISPLAY_LENGHT = 5000; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.splashscreen); new Handler().postDelayed(new Runnable() < @Override public void run() < Intent mainIntent = new Intent(SplashScreen.this, MainActivity.class); SplashScreen.this.startActivity(mainIntent); SplashScreen.this.finish(); >>, SPLASH_DISPLAY_LENGHT); > @Override public void onBackPressed() < super.onBackPressed(); >>

В этом видео пишем заставку SplashScreen в Android:

Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!

Источник

Оцените статью