1

ここで Xamarin の指示に従いました: http://docs.xamarin.com/android/tutorials/Creating_a_Splash_Screen

これは非常にうまく機能しますが、横向きモードについてはまったく言及していません。スプラッシュ画像を回転させて縦長サイズにすることで最良の結果が得られますが、それでも理想的ではありません。これは、スプラッシュ アクティビティが縦向きモードであり、メイン アクティビティが横向きモードであるためです。

スプラッシュ アクティビティの Activity 属性に「screenOrientation = ScreenOrientation.Landscape」を追加してみましたが、スプラッシュ画面が表示されません。

この質問によると、回転アニメーションを無効にすることはできないため、この最初のスプラッシュ アクティビティをランドスケープ モードで表示する方法、または同じ結果を達成する他の方法を見つけたいと思います。以下は、問題のある 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

4 に答える 4

1

リソースに drawable-land というフォルダーを作成するだけです。次に、Splash.png をそこに配置します。追加の c# は必要ありません。

于 2014-01-03T07:13:08.010 に答える
0

Nexus 7でも同様の問題がありました。言及されているようRequestedOrientation = ScreenOrientation.Landscape;にメソッド内で使用OnCreateすると、画面が縦向きに表示される数秒になります。

また、スプラッシュ画面の .axml とそのスタイル内にすべての設定を入れようとしましたが、効果はありませんでした。

私がそれを機能させることができた唯一の方法はScreenOrientation = ScreenOrientation.Landscape、アクティビティ注釈でプロパティを設定することです

[Activity(Label = "MySplashScreen", Theme = "@style/SplashTheme", NoHistory = true, MainLauncher = true, ScreenOrientation = ScreenOrientation.Landscape)]
    public class SplashScreenActivity : Activity
{
// your code goes here ...
}

それが私がそれを正しく機能させた唯一の方法です。それを利用して、このプロパティを設定したときに画像が表示されない理由を調査する必要があると思います。

于 2013-07-22T15:06:08.617 に答える
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));
    }
}
于 2012-12-12T12:43:01.883 に答える