对于按钮的背景,我们希望有一个双渐变。因此,我们使用一个图层列表,里面有两个形状,每个形状对应于每个渐变部分。选择器看起来像这样。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<layer-list>
<item android:bottom="24dp">
<shape android:shape="rectangle">
<gradient android:startColor="#9ccb37" android:endColor="#64bb3a" android:angle="270" />
<corners android:bottomRightRadius="0dp" android:bottomLeftRadius="0dp" android:topLeftRadius="6dp"
android:topRightRadius="6dp" />
</shape>
</item>
<item android:top="24dp">
<shape android:shape="rectangle">
<gradient android:startColor="#45ac42" android:endColor="#029345" android:angle="270" />
<corners android:bottomRightRadius="6dp" android:bottomLeftRadius="6dp" android:topLeftRadius="0dp"
android:topRightRadius="0dp" />
</shape>
</item>
</layer-list>
</item>
</selector>结果就是我们想要的,看起来就像这样。

在我们的测试设备中有一个HTC Desire HD,它有一条恼人的白线穿过按钮。在所有其他设备上(包括较低dpi和较高dpi),结果都是ok。然而,在此设备上,结果如下所示:

这对我来说完全是个谜,为什么它只在这台设备上呈现成这样。欢迎所有指导者!
发布于 2013-09-08 06:00:20
嗯,你必须在渐变中有一个清晰的区别,或者你可以像这样做一个过渡渐变吗?
<item>
<shape>
<gradient android:angle="270" android:endColor="#2f6699" android:startColor="#449def" />
<stroke android:width="1dp" android:color="#2f6699" />
<corners android:radius="4dp" />
<padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
</shape>
</item>https://stackoverflow.com/questions/15504094
复制相似问题