Animation Xamarin Android:动画闪屏
我想创建动画启动屏幕,但出现以下错误: Android.Content.Res.Resources+NotFoundException:文件 res/drawable/splash_screen.xml来自可绘制资源ID#0x7f0200bc 当我将Imageview的src更改为@drawable/logo2时,我的代码可以正常工作,但随后会出现一个静态的splas屏幕 SplashActivity.csAnimation 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
[活动(主题=“@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
你做错了几件事 您需要使用布局,而不是作为基础绘制。在布局中,您需要找到图像并为其设置适当的动画 本教程的结尾有一个示例,可用于: 基本步骤是:
错误很大程度上说明了问题所在,它找不到您的闪屏。是的,我知道,但当我更改内容时,他能找到它吗
[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>