我遵循了Xamarin的说明:http://docs.xamarin.com/android/tutorials/Creating_a_Splash_Screen
这非常有效,但根本没有提到横向模式。我可以将我的飞溅图像旋转为纵向尺寸,这样可以获得最佳效果,但它仍然不理想:飞溅图像随着它消失而旋转,并且主要活动已启动。这是因为启动活动处于纵向模式,主要活动处于横向状态。
我尝试将'screenOrientation = ScreenOrientation.Landscape`添加到splash活动的Activity属性中,但这会导致不显示启动画面。
根据this问题,无法禁用旋转动画,所以我真的想知道如何以横向模式显示这个初始启动活动,或者其他一些方法来实现同样的结果。下面是启动活动的代码,带有违规的ScreenOrientation参数。
[Activity(
Label = "The App Name",
Icon = "@drawable/icon",
MainLauncher = true,
Theme = "@style/Theme.Splash",
//ScreenOrientation = ScreenOrientation.Landscape,
NoHistory = true)]
public class ActivitySplash : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Start our real activity
StartActivity(typeof(ActivityMain));
}
}
答案 0 :(得分:0)
尝试将以下行添加到初始屏幕活动中。
RequestedOrientation = Android.Content.PM.ScreenOrientation.Landscape;
像这样:
[Activity(
Label = "The App Name",
Icon = "@drawable/icon",
MainLauncher = true,
Theme = "@style/Theme.Splash",
//ScreenOrientation = ScreenOrientation.Landscape,
NoHistory = true)]
public class ActivitySplash : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
RequestedOrientation = Android.Content.PM.ScreenOrientation.Landscape;
// Start our real activity
StartActivity(typeof(ActivityMain));
}
}
答案 1 :(得分:0)
我在Nexus 7上也遇到了类似的问题,如果你在RequestedOrientation = ScreenOrientation.Landscape;
方法中使用OnCreate
,那么屏幕将以纵向显示几秒钟
我还试图将我的启动画面的.axml中的所有设置放在其样式中但没有效果。
我能够使其工作的唯一方法是在Activity注释中设置属性ScreenOrientation = ScreenOrientation.Landscape
[Activity(Label = "MySplashScreen", Theme = "@style/SplashTheme", NoHistory = true, MainLauncher = true, ScreenOrientation = ScreenOrientation.Landscape)]
public class SplashScreenActivity : Activity
{
// your code goes here ...
}
这是我使用它的唯一方法。我认为您应该使用它并调查设置此属性时图像未显示的原因。
答案 2 :(得分:0)
您所要做的就是在Resources中创建一个名为drawable-land的文件夹。然后,将Splash.png放在那里。不需要额外的c#。
盖
答案 3 :(得分:0)
我知道这篇文章很老但是对于那些落在这里的人:使用xml布局,图像位于中心。这就是他们在Xamarin Splash Screen演示中的表现:Splash Screen Demo