스플래시 화면은 응용 프로그램이 초기화되는 동안 응용 프로그램을 처음로드 할 때 표시되는 이미지 또는 페이지입니다. 
스플래시 화면은 앱의 첫 페이지가 표시 될 때까지 계속 표시됩니다. 
Xamarin Forms에는 스플래시 화면을 추가 할 수있는 기능이 없으므로 플랫폼별로 이 작업을 수행해야합니다.

UWP

UWP는 이미지를 사용하여 스플래시 화면을 표시합니다. 다음 이미지로 이동하여 이 이미지를 배치 할 수 있습니다.

Project > package.appxmanifest > Visual Assets> Splashscreen

WinRT 응용 프로그램과 UWP 응용 프로그램 사이에는 스플래시 화면과 큰 차이가 있습니다. WinRT는 전체 세로 이미지를 스플래시 화면으로 배치했으나 UWP는 가로 이미지를 허용하지만 전체 화면을 차지하지 않습니다. 대부분의 앱이 세로형으로 시작하기 때문에 이미지를 전체 화면으로 가져올 수 없습니다.

UWP는 일반 배경색을 깔고 그 위 화면 중앙에 로고를 표시합니다. 이 작업을 수행하려면 가운데에 로고가 지정된 크기로 이미지를 만들고 선택한 배경색을 단색으로 만듭니다. 그런 다음 화면의 배경색 옵션을 아래 예와 동일한 단색 배경색으로 설정하십시오.

UWP 시작 화면 설정

그림과 같이 스플래시 화면이 나타납니다.

tesla_splashscreen

UWP에서 이미지로 전체 화면을 채우는 완전히 사용자 정의 가능한 스플래시 화면을 만들려면 확장 스플래시 화면 만들기 글을 참고하세요.



Android

Android의 시작 화면은 새로운 액티비티를 만들어야 하므로 더 복잡합니다. Xamarin.Android를 처음 사용하는 경우 Activity는 사용자가 정상적으로 상호 작용할 수있는 단일 UI입니다. Xamarin Forms는 MainActivity를 사용하여 애플리케이션을 로드하고, 다른 Activity를 생성합니다. 이 예제는 여러분이 AppCompat 를 사용하고 있다고 가정합니다. 이것은 새로운 모든 안드로이드 어플리케이션에 권장됩니다.

  1. 적절한 풀다운 폴더에 전체 화면 이미지 (예 : splashscreen.png)를 배치하십시오. Drawable 폴더는 다음 크기와 연결됩니다.

    • MDPI는 320 x 480 dp = 320x480px (기본값 x1)입니다.
    • LDPI는 0.75 x MDPI = 240x360 픽셀입니다.
    • HDPI는 1.5 x MDPI = 480x720px입니다.
    • XHDPI는 2 x MDPI = 640x960 픽셀입니다.
    • XXHDPI는 3 x MDPI = 960x1440 픽셀입니다.
    • XXXHDPI는 4 x MDPI = 1280x1920 픽셀입니다.
  2. 이 새 이미지를 참조하는 새 스타일을 만듭니다. 이것을 Resources> values> styles.xml (Build Action : Android Resource)에 위치 시키 십시오.
    <?xml version="1.0" encoding="utf-8" ?>
    <resources>
      <style name="splashscreen" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/splashscreen</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsTranslucent">false</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:backgroundDimEnabled">true</item>
      </style>
  3. 새 클래스 만들기 SplashActivity.cs

    Public class SplashActivity : AppCompatActivity { protected override void OnResume () { ActivLayout = true, NoHistory = true) public class SplashActivity : AppCompatActivity { { base.OnResume (); StartActivity (typeof (MainActivity)); } }

  4. MainActivity.cs 를 열고 MainLauncher = true 를 MainLauncher = false 로 변경하십시오.

더 나은 접근법

다른 방법을 통해보다 빠른 경험과로드 시간을 제공 할 수 있습니다.

  1. Resources> Values> styles.xml에서 스플래시 스크린 테마를 만듭니다.
    <?xml version="1.0" encoding="utf-8" ?>
    <resources>
      <style name="splashscreen" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/splashscreen</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsTranslucent">false</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:backgroundDimEnabled">true</item>
      </style>
  2. MainActivity.cs로 가서 MainLauncher = true 인지 확인 하십시오 . MainLauncher = true 인 다른 Activity가 없는지 확인하십시오.
  3. MainActivity.cs에서 기본 테마를 스플래시 화면으로 변경하십시오.
    [Activity(Label = "Mobile App", Theme = "@style/splashscreen", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, LaunchMode = LaunchMode.SingleTop)]
     public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity
  4. OnCreate에서 아래 코드로 테마를 전환하십시오.
    protected override void OnCreate(Bundle bundle)
    {
        base.Window.RequestFeature(WindowFeatures.ActionBar);
        // Name of the MainActivity theme you had there before.
        // Or you can use global::Android.Resource.Style.ThemeHoloLight
        base.SetTheme(Resource.Style.MainTheme);
    
        base.OnCreate(bundle);
    
        ...

9- 패치 이미지

밀도와 해상도를 변경하면 Android 용 스플래시 화면 이미지에 문제가 발생합니다. Xamarin Android 9-Patch Image Splashscreen 을 보시고 Android Splash 스크린 용 9 패치 이미지 를 만드십시오.

iOS

iOS는 응용 프로그램이 실행되고있는 화면 크기에 따라 이미지를 사용하여 스플래시 화면을 표시합니다.

  1. 다음과 같은 크기의 스플래시 화면 이미지를 만듭니다.
    1. 320 × 480
    2. 640 × 960
    3. 640 × 1136
  2. Properties> iOS Application> iPhone Launch Images로 이동하여 이미지를 가져 오십시오. iOS 프로젝트  Resources 폴더에 자동으로 추가됩니다 .
    ios_splashscreen_settings
  3. 속성 페이지를 아래로 이동하여 iPad 앱용 이미지를 추가하십시오.
  4. 이미지가 계속 표시되는 데 문제가있는 경우 가능한 원인이 몇 가지 있습니다. LaunchScreen.storyboard가 문제 일 수 있습니다. 열어서 수정하거나 심지어 삭제할 수도 있습니다. 이 작업을 완료하면 애플리케이션을 재구성하고 iOS 시뮬레이터를 재설정하거나 iOS가이 영역에 광범위하게 캐시되는 경향이 있으므로 iPhone에서 삭제하십시오.


원문 : https://xamarinhelp.com/creating-splash-screen-xamarin-forms/

+ Recent posts