我在Xamarin应用中创建一个SplashPage.cs,代码:
public class SplashPage : ContentPage
{
Image splashImage;
public SplashPage()
{
NavigationPage.SetHasNavigationBar(this, false);
var sub = new AbsoluteLayout();
splashImage = new Image
{
Source = "logo.png",
WidthRequest = 100,
HeightRequest = 100
};
AbsoluteLayout.SetLayoutFlags(splashImage, AbsoluteLayoutFlags.PositionProportional);
AbsoluteLayout.SetLayoutBounds(splashImage, new Rectangle(0.5, 0.5, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize));
sub.Children.Add(splashImage);
this.BackgroundColor = Color.FromHex("#ffff");
this.Content = sub;
}
protected override async void OnAppearing()
{
base.OnAppearing();
await splashImage.ScaleTo(1, 2000);
await splashImage.ScaleTo(0.9, 1500, Easing.Linear);
await splashImage.ScaleTo(150, 1200, Easing.Linear);
Application.Current.MainPage = new NavigationPage(new LoginPage());
}
}
然后在App.xaml.cs中
public App()
{
InitializeComponent();
MainPage = new NavigationPage(new SplashPage());
}
Android中的目录为Resources/drawable/logo.png
IOS的目录为Resources/logo.png
当我在android手机中启动应用程序时,将正确加载应用程序,但是当我尝试在IOS中使用它时,仅不加载我的图标,仅显示空白页面。我做错了什么?
答案 0 :(得分:1)
是的,当您使用格式不正确或非常复杂的图像时,通常会发生这种情况。以前我也遇到过类似的问题。 强烈建议在ios中使用矢量图形。
我已经测试了这个问题,当我使用矢量图像时,它在ios和android中均正常工作。
注意:您可以使用下图进行尝试。
答案 1 :(得分:0)
初始屏幕的主要目的是花一些时间来加载应用程序及其组件。对于Xamarin.Forms
应用程序,这次用于加载Xamarin运行时。
现在,您的初始屏幕本身就是在使用Xamarin.Forms组件ContentPage
。因此只有在Xamarin运行时完全加载后才能显示。
最好的方法是以iOS和Android的本机方式实现启动屏幕。
Here是一个很好的教程,说明如何在iOS和Android上原生实现启动屏幕。