根据 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,它会告诉你当前启动器是使用圆形图标还是默认图标。
相反,您应该以一种不依赖于设备的默认启动器实现的方式构建启动画面。通常,无论启动器使用圆形还是普通图标,您都应该拥有相同的图像。
将启动器图标放在一边,专门为启动画面创建一个资源。
我已将 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,它会告诉你当前启动器是使用圆形图标还是默认图标。
相反,您应该以一种不依赖于设备的默认启动器实现的方式构建启动画面。通常,无论启动器使用圆形还是普通图标,您都应该拥有相同的图像。
将启动器图标放在一边,专门为启动画面创建一个资源。