启动画面的九个补丁图像的不需要的拉伸

Unwanted stretching of nine-patch image for splash screen

我想使用九补丁图像为我的应用程序制作初始屏幕,它在纵向和横向方向上看起来应该相同(正方形)。

我的代码很简单:

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.splashscreen);
  // more code here...
}

我的资源文件是:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap android:src="@drawable/launch_image" />
    </item>
</layer-list>

九补丁图像在 Draw 9-patch 实用程序中看起来不错:

但结果图像被拉伸了:

怎么了?九补丁图像可以这样使用吗?

Can nine-patch image be used this way at all? 嗯,没有。不正确。

因为 9 个补丁本来就是 ​​可伸缩的
一个不错的教程:https://radleymarx.com/2011/simple-guide-to-9-patch

您最好使用方形图片并将其用作 ImageView 的 source (android:src),而不是背景 (android:background)。
然后你可以通过设置android:scaleType属性来调整它(FIT_XY ?)。

参考:http://developer.android.com/reference/android/widget/ImageView.ScaleType.html