Android部分横屏设备中windowSplashScreenBrandingImage覆盖AnimatedIcon问题
解决Android启动屏横屏模式下BrandingImage覆盖AnimatedIcon的问题
你可以通过自定义Drawable来控制AnimatedIcon的最大尺寸、边距,以及BrandingImage的位置,彻底解决横屏模式下的元素重叠问题,具体方案如下:
1. 限制AnimatedIcon的尺寸与边距
创建一个包裹原生图标的Drawable文件(例如res/drawable/splash_icon_wrapper.xml),通过layer-list固定图标尺寸并添加内边距,避免它在横屏时过度占用空间:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:width="120dp" android:height="120dp" android:gravity="center" android:padding="16dp"> <bitmap android:src="@drawable/block" /> </item> </layer-list>
然后在你的启动屏样式中替换原图标引用:
<item name="android:windowSplashScreenAnimatedIcon">@drawable/splash_icon_wrapper</item>
2. 调整BrandingImage的位置与边距
同样创建一个BrandingImage的包裹Drawable(例如res/drawable/branding_wrapper.xml),通过gravity指定固定位置(如右下角)并添加外边距,让它避开AnimatedIcon的区域:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:gravity="bottom|end" android:margin="24dp"> <bitmap android:src="@drawable/arborisoft_branding" /> </item> </layer-list>
更新样式中的BrandingImage引用:
<item name="android:windowSplashScreenBrandingImage">@drawable/branding_wrapper</item>
3. 额外优化:适配不同屏幕尺寸
如果部分设备仍有问题,可以在values和values-land目录下分别创建不同的Drawable配置,针对横屏模式单独调整尺寸和边距参数,确保在各类设备上都能正常显示。
内容的提问来源于stack exchange,提问作者SpaaJ
相关产品推荐
相关产品推荐

