Animation Xamarin Android:动画闪屏

Animation Xamarin Android:动画闪屏,animation,xamarin,xamarin.android,splash-screen,Animation,Xamarin,Xamarin.android,Splash Screen,我想创建动画启动屏幕,但出现以下错误: Android.Content.Res.Resources+NotFoundException:文件 res/drawable/splash_screen.xml来自可绘制资源ID#0x7f0200bc 当我将Imageview的src更改为@drawable/logo2时,我的代码可以正常工作,但随后会出现一个静态的splas屏幕 SplashActivity.cs [活动(主题=“@style/MyTheme”,MainLauncher=true,No

我想创建动画启动屏幕,但出现以下错误:

Android.Content.Res.Resources+NotFoundException:文件 res/drawable/splash_screen.xml来自可绘制资源ID#0x7f0200bc

当我将Imageview的src更改为@drawable/logo2时,我的代码可以正常工作,但随后会出现一个静态的splas屏幕

SplashActivity.cs
[活动(主题=“@style/MyTheme”,MainLauncher=true,NoHistory=true,ScreenOrientation=ScreenOrientation.grait)]
公共课堂活动:活动
{
静态只读字符串TAG=“X:”+typeof(SplashActivity).Name;
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
//在此处创建应用程序
}
受保护的覆盖void OnResume()
{
base.OnResume();
任务启动工作=新任务(()=>
{
Task.Delay(5000);//模拟一些启动工作。
});
startupWork.ContinueWith(t=>
{
启动性(类型(主要活动));
},TaskScheduler.FromCurrentSynchronizationContext());
startupWork.Start();
}
WindowFocusChanged上的公共覆盖无效(布尔hasFocus)
{
如果(hasFocus)
{
ImageView-ImageView=findviewbyd(Resource.Id.animated\u-android);
AnimationDrawable动画=(AnimationDrawable)imageView.Drawable;
animation.Start();
}
}
}
参考资料/Values/Style.xml

@可拉伸/飞溅屏幕
真的
参考资料/Drawable/splash_screen.xml

参考资料/Anim/animate_android.xml
你做错了几件事

您需要使用布局,而不是作为基础绘制。在布局中,您需要找到图像并为其设置适当的动画

本教程的结尾有一个示例,可用于:

基本步骤是:

  • 创建Spalsh布局
  • 创建一个抽绳台
  • 创建动画
  • 在活动中将它们连接在一起(请注意,如果将动画添加到“OnCreate”方法,动画将不会启动)
    错误很大程度上说明了问题所在,它找不到您的闪屏。是的,我知道,但当我更改内容时,他能找到它吗
    [Activity(Theme = "@style/MyTheme", MainLauncher = true, NoHistory = true,     ScreenOrientation = ScreenOrientation.Portrait)]
    public class SplashActivity : Activity
    {
        static readonly string TAG = "X:" + typeof(SplashActivity).Name;
    
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
    
            // Create your application here
        }
    
        protected override void OnResume()
        {
            base.OnResume();
    
            Task startupWork = new Task(() =>
                {
                    Task.Delay(5000); // Simulate a bit of startup work.
                });
    
            startupWork.ContinueWith(t =>
                {
                    StartActivity(typeof(MainActivity));
                }, TaskScheduler.FromCurrentSynchronizationContext());
    
            startupWork.Start();
        }
    
        public override void OnWindowFocusChanged(bool hasFocus)
        {
            if (hasFocus)
            {
                ImageView imageView = FindViewById<ImageView>(Resource.Id.animated_android);
                AnimationDrawable animation = (AnimationDrawable)imageView.Drawable;
                animation.Start();
            }
        }
    }
    
    <resources>
        <style name="MyTheme" parent="Theme.AppCompat.Light">
         <item name="android:windowBackground">@drawable/splash_screen</item>
         <item name="android:windowNoTitle">true</item>
       </style>
    </resources>
    
    <?xml version="1.0" encoding="UTF-8" ?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
      <item>
        <color android:color="@color/splash_background"/>
      </item>
      <item>
         <ImageView android:id="@+id/animated_android"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@anim/animate_android"
          />
      </item>
    </layer-list>
    
    <?xml version="1.0" encoding="utf-8"?>
    <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
                android:oneshot="false">
      <item android:drawable="@drawable/logo2"
        android:duration="100" />
      <item android:drawable="@drawable/Move"
        android:duration="100" />
      <item android:drawable="@drawable/logo"
        android:duration="100" />
      <item android:drawable="@drawable/icon"
        android:duration="100" />
      <item android:drawable="@drawable/About"
        android:duration="100" />
    </animation-list>