我希望在按下时更改布局的背景。布局并不总是相同的形状,所以我创建了一个9补丁图像,将图像保持居中。我的图片看起来像这样:
然后我的选择器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补丁,它仍然将图像视为普通的.png文件。甚至在角落里都有黑点和一切。
我想知道为什么图像的9-patch-ness没有得到尊重,它只是被视为一个普通的.png文件。
答案 0 :(得分:4)
我认为问题在于您在图像的底部和右侧部分使用了两个点。我不确定他们的系统知道如何处理这两个维度上的不相交区域。实质上,你是说这个图像的“内容”部分由四个像素区域组成,这是右边界和底边界上四个点的交点。
如果你把它拿出来,我认为它应该对你有更大的预测。