我正在实施"冷启动" Google推荐的启动画面
来源:
https://www.bignerdranch.com/blog/splash-screens-the-right-way/ https://plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd https://material.io/guidelines/patterns/launch-screens.html
但是,在使用纯 Android 7.1(Nexus 5X)的设备上,启动画面背景未正确调整大小,从而产生黑条。
灰色方块只是为了隐藏徽标,因为该应用尚未发布
这是我的background_splash.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:gravity="center"
android:drawable="@drawable/background_img"/>
<item>
<bitmap
android:gravity="center"
android:src="@drawable/logo_img"/>
</item>
</layer-list>
这是我的主题:
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/background_splash</item>
<item name="android:fitsSystemWindows">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
答案 0 :(得分:1)
通过在位图元素中添加属性 android:tileMode =&#34; clamp&#34; ,我能够解决问题。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap
android:tileMode="clamp"
android:gravity="center"
android:src="@drawable/hartwall_arena_bg"/>
</item>
<item>
<bitmap
android:gravity="center"
android:src="@drawable/hartwall_arena_logo"/>
</item>
</layer-list>
对于&#34;解决方案&#34;我没有一个很好的解释,所以如果有人解释得更好,我会把它标记为正确的反应,而不是我的:)
答案 1 :(得分:0)
在我的情况下,添加选项android:tileMode="clamp"
可以解决黑色边框的问题,但是由于根据文档https://developer.android.com/guide/topics/resources/drawable-resource
clamp
选项Replicates the edge color if the shader draws outside of its original bounds
可以使纯色背景看起来更好。
使用“ clamp”选项“解决”黑色边框问题,但图像失真后,我知道问题在图层列表中的bitmap
项上。所以我如下添加了位图并解决了问题:D
<item>
<bitmap
android:gravity="fill_horizontal|fill_vertical"
android:src="@drawable/background"/>
</item>
答案 2 :(得分:-1)
<item>
<bitmap
android:gravity="center"
android:src="@drawable/logo_img"/>
</item>
如果可能,在此代码中指定scaleType。