ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Splash 스크린 만들기
    Xamarin 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로 설정하여, 최초 화면으로 설정을 끈다.(스플래시 화면이 먼저 떠야 하므로)



Designed by Tistory.