2013-03-19 79 views
0

对于我们想要双梯度按钮的背景。因此,我们使用内部具有两个形状的图层列表,每个图层用于每个渐变部分。选择器看起来像这样。层叠列表中奇怪的白线

<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> 

结果正是我们想要的,看起来像这样。

correct button

当中我们的测试设备是HTC Desire HD,它有一个恼人的白线直通按钮。在所有其他设备上(包括较低和较高的dpi),结果都可以。在然而,这设备,结果是这样的:

strange button

这是一个完全神秘的我为什么会呈现这样才在此设备上。所有的指针欢迎!

+0

也许值得看一下按钮的margin和padding值。 – Rajesh 2013-03-19 15:55:31

回答

0

嗯,你必须有一个明显的区别在梯度或者你可以做一个过渡梯度这样

<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>