安卓7.1上带有黑条的冷启动启动画面

时间:2017-05-11 06:38:41

标签: android splash-screen android-7.1-nougat

我正在实施"冷启动" 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>

3 个答案:

答案 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。