MonoDroid在风景中闪屏活动

时间:2012-10-13 13:01:28

标签: android xamarin.android android-orientation

我遵循了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));
    }
}

4 个答案:

答案 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