Создать Splashscreen для Android с файлом XAML (Xamarin) - PullRequest
0 голосов
/ 15 мая 2019

У меня есть проект, в котором вы начинаете с экрана входа в систему, созданного с помощью XAML. Перед этим я загружаю активность, которая содержит мой заставки. Конечно, действие может просто загрузить файл AXML в моем методе SetContentView (), поэтому заставка генерируется с помощью AXML.

Я хочу разместить на обоих, логине и заставке две иконки. Точное их расположение довольно сложно, если я хочу, чтобы они были на одном месте, чтобы избежать прыжков при смене заставки на экран входа в систему.

Мой вопрос сейчас, есть ли возможность загрузить заставку также через XAML?

С уважением, Мануэла

1 Ответ

0 голосов
/ 16 мая 2019

Согласно вашему описанию, вы хотите иметь 2 заставки в начале приложения, я прав? Если да, я делаю один образец, который вы можете посмотреть:

Во-первых, вам нужно создать три действия: одно - MainActivity, другое - Activity1, другое - Activity2.

MainActivity:

[Activity(Label = "@string/app_name")]
public class MainActivity : Activity
{     
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.activity_main);         
    }
}

Activity1:

[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)]
public class Activity1 : Activity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        Timer timer = new Timer();
        timer.Interval = 3000; // 3 sec.
        timer.AutoReset = false; // Do not reset the timer after it's elapsed
        timer.Elapsed += (object sender, ElapsedEventArgs e) =>
        {
            StartActivity(typeof(Activity2));
        };
        timer.Start();

    }
}

деятельности2:

[Activity(Theme = "@style/MyTheme.Splash1",NoHistory = true)]
public class Activity2 : Activity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        Timer timer = new Timer();
        timer.Interval = 3000; // 3 sec.
        timer.AutoReset = false; // Do not reset the timer after it's elapsed
        timer.Elapsed += (object sender, ElapsedEventArgs e) =>
        {
            StartActivity(typeof(MainActivity));
        };
        timer.Start();

    }
}

splash_screen.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 <item>
  <color android:color="@color/splash_background"/>
 </item>
 <item>
   <bitmap
    android:src="@drawable/splash_logo"
    android:tileMode="disabled"
    android:gravity="center"/>
 </item>

splash_screen1.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 <item>
   <color android:color="@color/splash_background"/>
 </item>
 <item>
   <bitmap
    android:src="@drawable/a9"
    android:tileMode="disabled"
    android:gravity="center"/>
 </item>

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...