LottieアニメーションのSplashScreenを設定する。
Com.Airbnb.Xamarin.Formのインストール
NuGetパッケージ「Com.Airbnb.Xamarin.Form」をプロジェクトにインストールする。
Lottieファイルを追加する
Androidプロジェクト「Assert」フォルダにLottieファイル(.json)を追加する。
(Splash.json)
参考)LottieファイルDownloadサイト https://lottiefiles.com/featured
スプラッシュScreen レイアウトファイルを作成
Androidプロジェクト「Resources/layout」フォルダにAndroidレイアウト「Activity_Splash.xml」を作成する。
フォルダが無い場合は作成する。
Lottieファイル名「Splash.json」
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/animation_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:lottie_fileName="Splash.json"
app:lottie_autoPlay="true"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
スタイルタグの追加
Resources\values\styles.xmlに新しいstyleタグを追加する。
(resourcesタグ内に追加する)
<style name="MyTheme.Splash" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@drawable/bg_color</item>
</style>
bg_colorを指定する
Androidプロジェクト「Resources\values\colors.xml」に「bg_color」を追加する
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="launcher_background">#FFFFFF</color>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<drawable name="bg_color">#02d1c4</drawable><!--追加-->
</resources>
SplashActivity.csの追加
Androidプロジェクトに新規アクティビティ「SplashActivity.cs」を追加する。
「ainLauncher = true」を追加する。
[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)]
public class SplashActivity : Activity, Animator.IAnimatorListener
{
public void OnAnimationCancel(Animator animation)
{
}
public void OnAnimationEnd(Animator animation)
{
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
}
public void OnAnimationRepeat(Animator animation)
{
}
public void OnAnimationStart(Animator animation)
{
}
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Activity_Splash);
var animationView = FindViewById<LottieAnimationView>(Resource.Id.animation_view);
animationView.AddAnimatorListener(this);
}
}
MainActivity.csの属性の編集
Androidプロジェクト「MainActivity.cs」の属性から「MainLauncher = true」を削除する