본문 바로가기

android

[j android] splash화면(로딩화면) 구현하기

728x90
반응형

splash화면을 몇 초 뒤에 실행이 아닌 Androidmanifest.xml에서 테마를 설정해 로딩이 완료되면 메인 액티비티로 이동하게 해주는 방법으로 구현을 해봅시다.

 

 

1) Splash Activity.java를 추가 한 후 Main Activity 로 이동하는 코드를 구현.

  

public class SplashActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();
    }

}

 

 

2) [res]-[drawable] 안에 splash.xml파일을 추가 한 뒤 구현. (splash 화면 색상/아이콘을 설정해줌)

 

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!--splash 기본배경색-->
    <item android:drawable="@color/splash" />
    <!--splash 로고나 기타 원하는 이미지-->
   <item>
        <bitmap android:src="@drawable/people"
            android:gravity="center" />
    </item>
</layer-list> 

 

 

3) splash.xml 구현을 다 했으면 [res]-[values]-[styles.xml]에 splashtheme을 추가 해 준다.

 

 <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
         <item name="android:windowBackground">@drawable/splash </item>
     </style>

 

 

4) SplashActivity가 먼저 나오도록 Androidmanifest.xml에서 설정을 해준다. 이때 splashtheme스타일도 지정 해 준다.

 

<intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>

 

위 부분이 MainActivity <activity>태그 안에 있을 것이다. Splash가 먼저 나오도록 SplashActivity <activity>태그 안에 넣어주고 Mainactivity 안에 있던 건 지워준다.

 

 

다음은 SplashActivity 태그부분이다. theme도 지정 해 주었다.

 

	<activity
            android:name=".SplashActivity"
            android:theme="@style/SplashTheme">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
        </activity>

 

앱을 실행해보면 splash화면이 뜬 뒤에 메인 액티비티가 실행되는 것을 볼 수 있다.

728x90
반응형