4

我想在按下布局时更改布局的背景。布局并不总是相同的形状,所以我创建了一个 9-patch 图像来保持图像居中。我的图像如下所示:

在此处输入图像描述

然后我的选择器 xml 如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
 <item 
     android:state_pressed="true" 
     android:drawable="@drawable/my_selector" 
     />
 <item>
     <shape android:shape="rectangle">
         <solid android:color="#00ffffff" />
     </shape>
 </item>
</selector>

当我有这个代码并且我的图像不是 9 补丁时,它会拉伸以填充。即使我将图像更改为 9-patch,它仍然将图像视为普通的 .png 文件。甚至角落里的黑点和所有东西。

在此处输入图像描述

我想知道为什么图像的 9-patch-ness 没有得到尊重,而只是被视为常规的 .png 文件。

4

1 回答 1

4

我认为问题在于您在图像的底部和右侧使用了两个点。我不确定他们的系统是否知道如何处理这两个维度上的不相交区域。本质上,您是说该图像的“内容”部分由四个单像素区域组成,它们是右侧和底部边框上的四个点的交集。

如果你把它拿出来,我认为它应该对你来说更可预测。

于 2012-09-13T14:59:12.790 回答