使用 SVG 动画创建 Android 个启动画面
Create Android splash screen using SVG animation
我正在使用 Xamarin.Forms 开发应用程序,我正在尝试将启动画面插入我的 Android 项目。
我找到了一些创建带有背景色和静态 png 图像的启动画面的教程,但我想使用我的 svg 动画作为启动画面。我想我可以按照静态图像的教程,只需用 svg 动画替换 png 图像,但它没有用。这是我目前所拥有的:
在 SplashActivity.cs
:
[Activity(Label = "SplashActivity", Theme = "@style/Theme.Splash", MainLauncher = true, NoHistory = true)]
public class SplashActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your application here
}
protected override void OnResume()
{
base.OnResume();
Task startupWork = new Task(() => { SimulateStartup(); });
startupWork.Start();
}
async void SimulateStartup()
{
await Task.Delay(5000);
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
}
}
在 MainActivity.cs
上:
// I only changed the MainLauncher property to false
[Activity(Label = "MyApp", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = false, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize )]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
...
}
在 styles.xml
上(在 Xamarin.Android 项目中):
<style name="Theme.Splash" parent="android:Theme">
<item name="android:windowBackground">@drawable/desenhando5s</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="colorPrimaryDark">#004632</item>
</style>
当我 运行 应用程序时,它只显示黑屏作为初始屏幕,然后像往常一样显示我的登录页面。
谁能告诉我如何将我的动画设置为启动画面?
(仅供参考:如果有人想知道,我使用 SVGator 创建了动画)
您可以使用 FFImageLoading
在 SplashActivity
中加载 svg 图像,而不是在 styles.xml
中设置它。
启动画面:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FFImageLoading.Views.ImageViewAsync
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
代码:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your application here
SetContentView(Resource.Layout.layout5);
var filePath = "check";
var imageView = FindViewById<ImageView>(Resource.Id.imageView);
ImageService.Instance.LoadCompiledResource(filePath).WithCustomDataResolver(new SvgDataResolver(64, 0, true)).Into(imageView);
}
protected override void OnResume()
{
base.OnResume();
Task startupWork = new Task(() => { SimulateStartup(); });
startupWork.Start();
}
async void SimulateStartup()
{
await Task.Delay(5000);
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
}
更新:
请查看截图。 .svg 图像位于 drawable
文件夹中。 layout5 是布局文件夹中的启动画面。
我正在使用 Xamarin.Forms 开发应用程序,我正在尝试将启动画面插入我的 Android 项目。
我找到了一些创建带有背景色和静态 png 图像的启动画面的教程,但我想使用我的 svg 动画作为启动画面。我想我可以按照静态图像的教程,只需用 svg 动画替换 png 图像,但它没有用。这是我目前所拥有的:
在 SplashActivity.cs
:
[Activity(Label = "SplashActivity", Theme = "@style/Theme.Splash", MainLauncher = true, NoHistory = true)]
public class SplashActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your application here
}
protected override void OnResume()
{
base.OnResume();
Task startupWork = new Task(() => { SimulateStartup(); });
startupWork.Start();
}
async void SimulateStartup()
{
await Task.Delay(5000);
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
}
}
在 MainActivity.cs
上:
// I only changed the MainLauncher property to false
[Activity(Label = "MyApp", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = false, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize )]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
...
}
在 styles.xml
上(在 Xamarin.Android 项目中):
<style name="Theme.Splash" parent="android:Theme">
<item name="android:windowBackground">@drawable/desenhando5s</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="colorPrimaryDark">#004632</item>
</style>
当我 运行 应用程序时,它只显示黑屏作为初始屏幕,然后像往常一样显示我的登录页面。 谁能告诉我如何将我的动画设置为启动画面?
(仅供参考:如果有人想知道,我使用 SVGator 创建了动画)
您可以使用 FFImageLoading
在 SplashActivity
中加载 svg 图像,而不是在 styles.xml
中设置它。
启动画面:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FFImageLoading.Views.ImageViewAsync
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
代码:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your application here
SetContentView(Resource.Layout.layout5);
var filePath = "check";
var imageView = FindViewById<ImageView>(Resource.Id.imageView);
ImageService.Instance.LoadCompiledResource(filePath).WithCustomDataResolver(new SvgDataResolver(64, 0, true)).Into(imageView);
}
protected override void OnResume()
{
base.OnResume();
Task startupWork = new Task(() => { SimulateStartup(); });
startupWork.Start();
}
async void SimulateStartup()
{
await Task.Delay(5000);
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
}
更新:
请查看截图。 .svg 图像位于 drawable
文件夹中。 layout5 是布局文件夹中的启动画面。