2013-03-19 40 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>