我想做的是如果在某些时间之间显示白天画面的启动画面,然后如果不在这些时间之间,则显示夜间画面的启动画面。首先,我想知道这是否有可能。我正在为该项目使用Xamarin Forms,但是即使使用iOS或Android的代码也会有所帮助。对于Android,我现在拥有的代码仅显示初始屏幕。我只是不确定是否有此更改。

Styles.axml

<style name="Theme.Splash" parent="android:Theme">
    <item name="android:windowBackground">@drawable/splash</item>
    <item name="android:windowNoTitle">true</item>
</style>


MainActivity.cs

[Activity(Theme = "@style/Theme.Splash", //Indicates the theme to use for this activity
         MainLauncher = true, //Set it as boot activity
         NoHistory = true)] //Doesn't place it in back stack
public class SplashActivity : Activity
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        System.Threading.Thread.Sleep(3000); //Let's wait awhile...
        this.StartActivity(typeof(MainActivity));
    }
}

最佳答案

首先,我强烈建议您遵循this tutorial以正确的方式创建启动画面。我不知道这将如何转化为Xamarin(因为我还没有使用该平台),但是应该应用相同的概念。



从您发布的答案来看,您似乎只是想根据白天还是黑夜来更改初始屏幕。使用nightnotnight resource qualifiers可以轻松完成此操作。

例如,如果您在启动屏幕上使用可绘制对象,则可以创建drawable-night文件夹。然后,将您的白天启动画面的可绘制对象放在drawable文件夹中,并将您的夜晚启动画面的可绘制对象放在drawable-night文件夹中(确保两个绘制对象具有相同的名称)。

08-25 23:41