Xamarin

Splash 스크린 만들기

사상의지평선 2016. 6. 8. 17:52

환경


Visual Studio 2015 

Xamarin.Android project (주의! : Xamarin.Forms 프로젝트가 아닙니다.)




#1. SplashActivity.CS 신규 생성 및 작성


using Android.App;

using Android.OS;

using System.Timers;



[Activity(Theme = "@style/Theme.Splash", MainLauncher = true, NoHistory = true, Label = "Splash")]

    public class SplashActivity : Activity

    {

        protected override void OnCreate(Bundle savedInstanceState)

        {

            base.OnCreate(savedInstanceState);


            Timer timer = new Timer();

            timer.Interval = 2000; //2초간 대기한다.

            timer.AutoReset = false; // 타이머를 자동 리셋하지 않게 한다.

            timer.Elapsed += (object sender, ElapsedEventArgs e) =>

            {

                StartActivity(typeof(MainActivity));

            };

            timer.Start();

        }

    }


MainLauncher = true 로 해주면, 최초 가동화면으로 설정된다.

NoHistory = true로 해주면 뒤로가기시 이 화면이 다시 뜨지 않게 된다.

스플래시에서 리소스 로딩등의 처리를 할때는 위 타이머를 사용하는 부분을 대체하여 작성하면 된다.





#2. Resources/values 에 Style.xml 신규 생성 및 작성


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

<resources>

    <style name="Theme.Splash" parent="android:Theme">

        <item name="android:windowBackground">@drawable/splash</item>

        <item name="android:windowNoTitle">true</item>

    </style>

</resources>


MainActivity 에서 사용한 Splash 테마를 정의해준다.






#3. Resources/drawable 에 splash.png 이미지 파일 추가


- 솔루션 익스플로러 Resources/drawable 폴더 에서 마우스 오른쪽 버튼 클릭

- Add -> Existing Item 선택

- splash.png 파일 선택 (이미지를 미리 준비하고 파일이름을 맞춰두자)


파일이름이 다를때는 #2번 Style.xml 파일내용중 4번째줄 @drawable/#### 에 파일명을 지정해 준다.






#4. MainActivity.cs 를 열고 수정


[Activity(Label = "MobileMud", MainLauncher = false, Theme = "@android:style/Theme.NoTitleBar", Icon = "@drawable/icon")]


MainLauncher = false로 설정하여, 최초 화면으로 설정을 끈다.(스플래시 화면이 먼저 떠야 하므로)