如何根据图层列表在启动画面中添加应用程序名称?

How can I add the app name in a splash screen based on a layer-list?

我想创建一个包含应用程序名称的启动画面。如何将文本添加到图层列表?

这是我目前的启动画面文件:

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:drawable="@android:color/white"
            android:gravity="fill_horizontal|fill_vertical" />
        <item> <!--APP NAME--></item>
    </layer-list>

我已经尝试使用应用程序名称创建一个 png 文件,但这在不同的屏幕尺寸上造成了一些问题。

我已经尝试用文本创建一个 png 文件,但它不适用于所有屏幕尺寸。

您可以在图层列表中添加图片

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:drawable="@color/gray"/>

    <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/ic_launcher"/>
    </item>

</layer-list>

在theme.xml

<style name="NewSplashTheme" parent="Theme.AppCompat.NoActionBar">
      <item name="android:windowBackground">@drawable/background_splash</item>
</style>

不要忘记使用 应用程序名称

创建图像

您可以将矢量可绘制对象 (app_logo.xml) 与文本一起用作 window 背景:

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
    
    <item android:drawable="@android:color/white"/>
    
    <item
        android:drawable="@drawable/app_logo"
        android:gravity="center" />

</layer-list>

设置主题:

<style name="NewSplashTheme" parent="Theme.AppCompat.NoActionBar">
      <item name="android:windowBackground">@drawable/background_splash</item>
</style>

这将在 API 级别 >= 23 上正常工作,您应该为之前的 API 级别提供带有光栅图形的 background_splash 的替代版本(参见@Venky 的回答)。