Sunday, January 10, 2021

Splash Screen trong Android Studio

Splash Screen thường là màn hình khởi động đầu tiên xuất hiện khi ứng dụng được mở. Nói cách khác, nó là một màn hình không đổi đơn giản trong một khoảng thời gian cố định được sử dụng để hiển thị logo, tên công ty, nội dung quảng cáo, v.v.

Thông thường, nó hiển thị khi ứng dụng được khởi chạy lần đầu tiên trên thiết bị Android hoặc có thể là một số loại quy trình được sử dụng để hiển thị màn hình cho người dùng ngay trước khi ứng dụng tải hoàn toàn

Hướng dẫn này sẽ giúp bạn tìm hiểu Cách tạo màn hình Splash trong ứng dụng Android của bạn.

Phương pháp triển khai Splash Screen trong Android:

Phương pháp 1 triển khai Splash Screen:

Tạo một chuỗi và đặt thời gian ngủ sau khi chuyển hướng đến màn hình ứng dụng chính.

/****** 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();

Phương pháp 2 của việc triển khai Splash Screen:

Đặt thời gian để xử lý và gọi Handler (). PostDelayed, nó sẽ gọi phương thức run của runnable sau thời gian đã đặt và chuyển hướng đến màn hình ứng dụng chính.

Trình xử lý về cơ bản là các luồng nền cho phép bạn giao tiếp với luồng giao diện người dùng (cập nhật giao diện người dùng).

Trình xử lý được phân lớp từ lớp Trình xử lý Android và có thể được sử dụng bằng cách chỉ định một Runnable được thực thi khi luồng yêu cầu hoặc bằng cách ghi đè phương thức gọi lại handleMessage () trong lớp con Trình xử lý sẽ được gọi khi thông báo được gửi đến trình xử lý bởi một chủ đề.

Có hai cách sử dụng chính cho Trình xử lý:

a) Lập lịch cho các thông báo và Runnables sẽ được thực thi vào một thời điểm nào đó trong tương lai

b) Để xếp hàng đợi một hành động được thực hiện trên một luồng khác với luồng của bạn.

new Handler().postDelayed(new Runnable() {

  @Override

     public void run() {

     Intent i = new Intent(MainSplashScreen.this, FirstScreen.class);

      startActivity(i);

      finish();

         }

       }, 5*1000); 

   

Ví dụ về Splash Screen trong Android Studio

Với sự trợ giúp của hướng dẫn này, chúng tôi sẽ đề cập đến việc triển khai màn hình giật gân trong hai trường hợp. Đầu tiên sẽ hiển thị màn hình giật gân bằng Handler và thứ hai, chúng tôi sẽ không tạo tệp bố cục cho hoạt động trên màn hình giật gân. Thay vào đó, hãy chỉ định nền chủ đề của hoạt động làm bố cục màn hình giật gân.

Trong ví dụ đầu tiên dưới đây, chúng ta sẽ thấy việc sử dụng Splash Screen bằng cách sử dụng lớp Handler.

Dưới đây, bạn có thể tải xuống mã, xem kết quả cuối cùng và giải thích từng bước về ví dụ:

Bước 1: Tạo một dự án mới và đặt tên là Splashscreen

Bước 2: Mở res -> layout -> activity_main.xml (hoặc) main.xml và thêm mã sau:

Trong bước này, chúng tôi chỉ cần thêm một mã để hiển thị bố cục sau màn hình Splash.

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/activity_main"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="abhiandroid.com.splashscreen.MainActivity">


    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="Hello World by AbhiAndroid!"

        android:textSize="20sp"

        android:layout_centerInParent="true"/>

</RelativeLayout>

Bước 3: Tạo một tệp tin XML mới splashfile.xml cho màn hình Splash và dán đoạn mã sau vào đó.

Bố cục này chứa biểu trưng ứng dụng của bạn hoặc biểu trưng sản phẩm khác mà bạn muốn hiển thị trên màn hình giật gân.

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

android:background="@color/splashBackground">


<ImageView

    android:id="@+id/logo_id"

    android:layout_width="250dp"

    android:layout_height="250dp"

    android:layout_centerInParent="true"

    android:src="@drawable/abhiandroid"/>


    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@+id/logo_id"

        android:layout_centerHorizontal="true"

        android:text="Splash Screen"

        android:textSize="30dp"

        android:textColor="@color/blue"/>


</RelativeLayout>

Bước 4: Bây giờ mở ứng dụng -> java -> package  -> MainActivity.java và thêm mã bên dưới.

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);

    }

}

Bước 5: Đối với Splash Screen, chúng ta sẽ tạo một hoạt động giật gân riêng. Tạo một lớp mới trong gói java của bạn và đặt tên là SplashActivity.java.

Bước 6: Thêm mã này trong hoạt động SplashActivity.java. Trong trình xử lý mã này được sử dụng để giữ màn hình trong thời gian cụ thể và khi trình xử lý không hoạt động, Hoạt động chính của chúng ta sẽ được khởi chạy. Chúng tôi sẽ giữ màn hình Splash trong ba giây. Chúng tôi sẽ xác định giây theo mili giây sau phương thức Post Delayed () {}.

1 giây = 1000 mili giây.

Phương thức Post Delayed sẽ trì hoãn thời gian trong 3 giây. Sau khi hết thời gian trì hoãn, hoạt động chính của bạn sẽ được khởi chạy.

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);


    }

}

Bước 7: Mở tệp AndroidManifest.xml và đặt lớp splashactivity.java của bạn làm hoạt động Trình khởi chạy và đề cập Hoạt động chính như một hoạt động khác.

AndroidManifest.xml 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="abhiandroid.com.splashscreen">

<application

    android:allowBackup="true"

    android:icon="@drawable/abhiandroid"

    android:label="@string/app_name"

    android:supportsRtl="true"

    android:theme="@style/AppTheme">

    <activity android:name="abhiandroid.com.splashscreen.SplashActivity">

        <intent-filter>

            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>

    </activity>

    <activity android:name="abhiandroid.com.splashscreen.MainActivity"/>

</application>

</manifest>

Kết quả:

Splash Screen trong Android Studio

No comments:

Post a Comment