728x90
반응형
이번에 해볼것은 앱의 시작하는 부분에 intro 처럼 로고를 잠깐동안 띄워주는 SplashScreen을 만들어보려고 한다.
SplashScreen을 만들려면 아래의 단계를 거쳐야 한다.
1. SplashScreen의 화면 만들기
2. SplashScreen Activity 만들기
3. SplashScreen Activity에서 다른 화면으로 넘기기
4. Manifest.xml에서 첫 액티비티를 2번에서 만든 activity로 설정하기
그럼 이제 각 단계별로 살펴보자.
1. SplashScreen의 화면 만들기
layout파일에서 SplashScreen의 xml을 만들어준다. 나같은 경우는 아래와 같이 만들었다.
splash_screen.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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=".view.splash.Splash"
android:background="#00BFFF">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="COC"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:textSize="50dp"
android:textColor="#FFFFFF"
android:textStyle="bold"/>
</androidx.constraintlayout.widget.ConstraintLayout>
나랑 똑같이 할필요 없고 본인이 만들고 싶은 형태로 만들면 된다.
2. SplashScreen Activity 만들기
Activity를 새로 만들고 위에서 1번에서 만든 xml파일로 contentView를 한다.
public class Splash extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
}
}
3. SplashScreen Activity에서 다른 화면으로 넘기기
이제 그럼 Handler를 생성해서 2초동안 화면을 보여주고 메인 화면으로 넘기는 부분을 구현한다.
소스는 아래와 같다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(getApplicationContext(), MainPage.class);
startActivity(intent);
finish();
}
},2500);
}
4. Manifest.xml에서 첫 액티비티를 2번에서 만든 activity로 설정하기
이제 그럼 마지막으로 우리가 만든 Splash Activity를 첫 Activity로 만들어줘야 한다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="wook.co.coc">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".view.main_page.MainPage"></activity>
<activity android:name=".view.splash.Splash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
위에서 중요한 부분은 우리가 사용할 부분의 첫 액티비티에 이걸 추가해주는것이다.
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
그럼 이제 Splash Screen이 완성이 된다.
반응형
'코딩일기 > android studio' 카테고리의 다른 글
안드로이드 독학 24일차 : BottomNavigation 만들기 (0) | 2021.07.26 |
---|---|
안드로이드 독학 23일차 : Statusbar 색깔 변경하는 방법 (0) | 2021.07.25 |
안드로이드 독학 23일차 : 타이틀바 없애는 법 (0) | 2021.07.25 |
안드로이드 독학 23일차 : Fragment란? (0) | 2021.07.25 |
안드로이드 독학 22일차 : MVVM 패턴에 대하여(Java) (1) | 2021.07.13 |