Android 9-patch在真实设备上的外观与在XML预览中的不同

Android 9-patch在真实设备上的外观与在XML预览中的不同,android,xml,nine-patch,Android,Xml,Nine Patch,我为EditText创建了一个9补丁背景 XML代码: <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android

我为EditText创建了一个9补丁背景

XML代码:

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:background="@drawable/searchnew"
    android:ems="10"
    android:hint="  Search recorded files..."
    android:textColor="#646464" >

</EditText>

XML预览:

真实设备:

9-patch图像:

老实说,这并没有让我那么烦恼,但我仍然想知道为什么会发生这种事?为什么真实设备上的EditText背景更宽、更高


问题:你知道我怎样才能摆脱“丑陋”的角落吗?如果你仔细观察,你可以单独看到像素,但我想要一个像素完美的设计。

只是在做了更多的研究后找到了原因。EditText中的文本有一些默认的填充。这就是为什么当我在真正的设备上运行9-patch时,它被拉伸得更多。我所要做的就是将padding设置为0

将顶部填充设置为0示例:

android:paddingTop="0dp"

像这样做,顶部、底部、左侧、右侧和背景将保持不变:)

Matthew,我知道你发现了问题,但你的九块补丁在我看来很奇怪。这些点不应该在图像的上部和底部吗?左边和右边呢?不,据我所知。上点和左点定义可缩放区域。底部和右侧点定义填充区域,并且是可选的。如果我错了,请告诉我。不过,我的9号贴片效果不错。