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

根据android:图标动态更改应用程序主题,android,android-manifest,splash-screen,android-theme,android-launcher,Android,Android Manifest,Splash Screen,Android Theme,Android Launcher,我已经从android manifest将闪屏集成到我的应用程序中,我给了它一个新制作的SplashTheme,每当onActivityCreated调用时,我都会将其更改为所需的。现在,在splash.xml文件中,您可以看到以下内容: 我将我的启动器ic_launcher放在中间,但当安装应用程序的设备使用圆形图标时,启动屏幕仍显示“原始”图标。我知道,因为我在这里放置了ic_launcher而不是ic_launcher\u round,但我想让这部分动态化,以识别设备是否使用圆形

我已经从android manifest将闪屏集成到我的应用程序中,我给了它一个新制作的
SplashTheme
,每当
onActivityCreated
调用时,我都会将其更改为所需的。现在,在
splash.xml
文件中,您可以看到以下内容:


我将我的启动器
ic_launcher
放在中间,但当安装应用程序的设备使用圆形图标时,启动屏幕仍显示“原始”图标。我知道,因为我在这里放置了
ic_launcher
而不是
ic_launcher\u round
,但我想让这部分动态化,以识别设备是否使用圆形图标放置
ic_launcher\u round
,反之亦然

以下是我的
AndroidManifest.xml
的一部分:


好吧,你无法实现你期望的行为,仅仅是因为不存在一个API,它将为你提供当前启动器是使用圆形图标还是默认图标

相反,您应该以一种不依赖于设备的默认启动器实现的方式构建初始屏幕。通常,无论启动器使用圆形或普通图标,您都应该具有相同的图像


将启动程序图标放在一边,创建专门用于启动屏幕的资源。

尝试阅读有关
自适应图标
圆形图标
。。。
<item>
    <color android:color="@color/colorPrimary" />
</item>

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