为什么我的 9-patch Android 闪屏中间有一个黑色矩形?

Why does my 9-patch Android splash screen have a black rectangle in the middle of it?

我正在尝试使用 9 补丁图像作为初始屏幕,但这样做时我得到了一个奇怪的伪像。

我在 activity

上使用了以下样式
<style name="AppTheme.Splash" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/splash_screen</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
</style>

这引用了以下可绘制对象

<?xml version="1.0" encoding="UTF-8" ?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <color android:color="@color/splash_background" />
    </item>
    <item>
        <nine-patch 
            android:src="@drawable/test_splash" 
            android:tileMode="disabled"
            android:gravity="center" />
    </item>
</layer-list>

9-patch image 有两个可缩放的垂直区域---上方和下方 "Middle"。没有水平缩放设置。

这最终给我的是

向下 3/4 处的黑条来自哪里?

我遇到了同样的问题。在擦洗了我所有的 splash.9.png 文件以寻找问题后,我撤退并尝试了一个在另一个应用程序中运行良好的文件。它产生了相同的工件。

问题似乎出在 Theme.AppCompat.Light.NoActionBar 上。试试这个:

  <style name="splashscreen" parent="android:Theme">

标题栏等看起来并不完全相同,但它看起来像启动画面。

我不使用 Xamarin(我使用 Titanium),但是当我没有提供填充框(右侧和底部的黑色像素)时,我遇到了这个确切的问题。我通过用黑色填充填充线来修复它。