我想在按下时更改布局的背景。布局并不总是相同的形状,所以我创建了一个 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-patch 时,它会拉伸(stretch)以填充。即使我将图像更改为 9-patch,它仍然将图像视为普通的 .png 文件。甚至角落里的黑点和一切。

我想知道为什么不尊重图像的 9-patch-ness,而只是将其视为常规 .png 文件。

最佳答案

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

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

关于android - 选择器中的 9-Patch 显示黑点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12396079/

10-09 07:22
查看更多