根据 android:icon 动态更改应用程序主题

Dynamically change application theme depending on android:icon

我已将 android 清单中的启动画面集成到我的应用程序中,我给了它一个新制作的 SplashTheme,每当调用 onActivityCreated 时,我都会将其更改为需要的那个。现在,在 splash.xml 文件中,您可以在下面看到:

<item>
    <color android:color="@color/colorPrimary" />
</item>

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

我将我的启动器 ic_launcher 放在中间,但是当安装该应用程序的设备使用 圆形 图标时,初始屏幕仍然显示 "original" 图标。我知道,因为我把 ic_launcher 而不是 ic_launcher_round 放在这里,但我想让这部分动态化,以识别设备是否使用圆形图标 ic_launcher_round 和相反的。

这是我的部分 AndroidManifest.xml:

Afaik,你无法实现你期望的行为,只是因为 not 存在 API,它会告诉你当前启动器是使用圆形图标还是默认图标。

相反,您应该以一种不依赖于设备的默认启动器实现的方式构建启动画面。通常,无论启动器使用圆形还是普通图标,您都应该拥有相同的图像。

将启动器图标放在一边,专门为启动画面创建一个资源。