我想做的是如果在某些时间之间显示白天画面的启动画面,然后如果不在这些时间之间,则显示夜间画面的启动画面。首先,我想知道这是否有可能。我正在为该项目使用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(因为我还没有使用该平台),但是应该应用相同的概念。
从您发布的答案来看,您似乎只是想根据白天还是黑夜来更改初始屏幕。使用night
或notnight
resource qualifiers可以轻松完成此操作。
例如,如果您在启动屏幕上使用可绘制对象,则可以创建drawable-night
文件夹。然后,将您的白天启动画面的可绘制对象放在drawable
文件夹中,并将您的夜晚启动画面的可绘制对象放在drawable-night
文件夹中(确保两个绘制对象具有相同的名称)。