목차
- 안드로이드 스튜디오 앱 프로젝트 생성 예제 이전 포스팅 참고 학습
- 안드로이드 핸들러 postDelayed 일정 시간 뒤 처리 예제 이전 포스팅 참고 학습
- 안드로이드 TextView 텍스트 출력 예제 이전 포스팅 참고 학습
- 안드로이드 Splash 인트로 액티비티 및 메인 액티비티 생성 예제
- 안드로이드 Handler postDelayed로 인트로 화면 전환 예제
안드로이드 스튜디오 앱 프로젝트 생성 예제 이전 포스팅 참고 학습
오늘 포스팅 주제는 안드로이드 앱에서 Splash 인트로 화면을 구성하는 예제입니다. 인트로란 무언가 메인 화면이 뜨기 전에 회사 로고나 앱의 시작을 알리는 로딩 화면과 같은 힌트 화면을 표출하는 것입니다. 그리고 일정 시간이 지나면 메인 화면으로 이동시켜 사용자가 서비스를 이용할 수 있게 합니다.
이러한 예제를 수행하기 위해서는 반드시 안드로이드 신규 앱 프로젝트를 구성할 줄 알아야합니다. 아직 해당 내용을 잘 모르신다면 아래의 링크를 참고하여 프로젝트 이름, 패키지명 등을 설정하고 필요한 설정을 하고 신규 프로젝트를 생성해주세요.
2023.08.22 - [Android] - [안드로이드] 프로젝트 생성 예제(로그출력, TextView)
안드로이드 핸들러 postDelayed 일정 시간 뒤 처리 예제 이전 포스팅 참고 학습
splash intro activity를 구성하는데 있어서 가장 중요한 것은 일정 시간 뒤에 화면을 전환시켜야 한다는 것입니다. 화면을 즉시 전환 시키는 것은 너무나도 쉽습니다. 우리가 흔히 아는 intent를 사용하면 activity를 전환시킬 수 있습니다. 다만 일정한 시간 뒤에 activity를 전환하기 위해서는 postDelayed API를 사용해야합니다. postDelayed는 안드로이드 핸들러에서 제공하는 하위 메소드입니다.
아직 이 API에 대해 잘 모르신다면 이전 포스팅 링크를 참고하여 학습해주세요.
2023.07.27 - [Android] - [안드로이드] Handler postDelayed 일정 시간 뒤 콜백 호출 예제 - 1(콜백 등록 및 삭제)
안드로이드 TextView 텍스트 출력 예제 이전 포스팅 참고 학습
마지막으로 TextView는 화면에 텍스트를 출력하는 뷰입니다. setText() 메서드를 사용하여 텍스트를 설정하고, XML에서 레이아웃을 구성할 때 android:text 속성을 통해 초기 텍스트를 설정할 수 있습니다. 이러한 TextView를 통해 전환하는 화면마다 화면이 잘 바뀌었는지 확인할 수 있는 텍스트를 설정하도록 하겠습니다.
아직 안드로이드 앱에서 TextView 설정 방법을 잘 모르신다면 아래 링크를 참고해주세요.
2023.08.22 - [Android] - [안드로이드] TextView 출력 예제(폰트 크기, 색상 변경)
안드로이드 Splash 인트로 액티비티 및 메인 액티비티 생성 예제
Splash(인트로) 액티비티는 앱이 시작될 때 보여지는 화면입니다. 이 화면을 디자인하고, 메인 액티비티를 생성하여 앱의 실제 기능을 담당하는 화면으로 준비합니다. 아래는 SplashActivity.java를 추가하는 예제입니다. 왼쪽 프로젝트 트리뷰에서 java -> {패키지명} 을 마우스 오른쪽 클릭하여 New -> Activity -> Empty Activity 를 클릭합니다.
이후 아래와 같이 Activity 명을 Splash로 입력하고 "Launcher Activity" 옵션을 활성화합니다. Splash Activity를 앱 실행되자마자 실행되는 화면으로 구성하기 위함입니다.
안드로이드 Handler postDelayed로 인트로 화면 전환 예제
아래는 핸들러의 postDelayed() 메서드를 사용하여 일정 시간 후에 메인 액티비티로 전환하는 예제입니다. 이를 통해 스플래시 화면을 일정 시간 동안 보여주고, 그 후에 메인 액티비티로 전환할 수 있습니다.
아래는 postDelayed를 통해 startMainActivity 메소드를 1초뒤 실행하도록 설정하고 인텐트를 통해 MainActivity로 전환합니다.
package com.example.blog_test_app;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
public class Splash extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(((Splash)this)::startMainActivity, 1000);
}
public void startMainActivity() {
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
}
그리고 아래는 각 화면을 알아보기 위한 레이아웃 XML입니다. 먼저 Splash 화면 XML입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Splash">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Splash Activity!"/>
</LinearLayout>
아래는 MainActivity XML입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Main Activity!"/>
</LinearLayout>
이후 앱 실행시 splash 화면이 출력되고 화면이 전환됩니다.