2016-07-15 58 views
0

我想創建一個可繪製的,並將其用作我的按鈕的背景。 陰影的高度必須是18dip。看到圖片。Android按鈕,帶陰影的可繪製xml

This should be described in drawable xml

我已經嘗試過這種方式,但它不工作:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false"> 
     <layer-list> 
      <item android:gravity="bottom"> 
       <bitmap android:src="@drawable/shadow9path"/> // This is a 9-path picture 
      </item> 
      <item android:gravity="bottom" 
        android:bottom="18dp"> 
       <shape android:shape="rectangle"> 
        <size android:height="@dimen/..." /> 
        <corners android:radius="@dimen/..." /> 
        <solid android:color="@color/..." /> 
       </shape> 
      </item> 
     </layer-list> 
    </item> 
... 
</selector> 

編輯: 陰影應該只在按鍵的底部。所以按鈕不應該被陰影所包圍。我需要一個複合視圖,它由按鈕和它下面的陰影組成。

+1

這可能是你在找什麼http://stackoverflow.com/questions/15333529/how-to-提供陰影對按鈕 – Rishi

+0

不幸的是,我不是在看霧。陰影應該只在按鈕的底部。我會更新這個問題。 – Alex

+0

' //這是9個路徑的圖片'如果是** 9補丁**,爲什麼要使用'bitmap'?你應該使用'nine-patch':https://developer.android.com/guide/topics/resources/drawable-resource.html –

回答

0

這項工作形成了我,請嘗試:

<item> 
    <layer-list> 
     <item android:right="10dp" android:top="10dp"> 
      <shape> 
       <corners android:radius="5dp" /> 
       <solid android:color="#D6D6D6" /> 
      </shape> 
     </item> 
     <item android:bottom="3dp" android:left="3dp"> 
      <shape> 
       <gradient android:angle="280" 
        android:endColor="#E2E2E2" android:startColor="#BABABA" /> 
       <stroke android:width="2dp" android:color="#BABABA" /> 
       <corners android:radius="5dp" /> 
       <padding android:bottom="10dp" android:left="10dp" 
        android:right="10dp" android:top="10dp" /> 
      </shape> 
     </item> 
    </layer-list> 
</item> 
0

試試這個

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <layer-list> 
     <item android:right="5dp" android:top="5dp"> 
      <shape> 
       <corners android:radius="3dp" /> 
       <solid android:color="#D6D6D6" /> 
      </shape> 
     </item> 
     <item android:bottom="2dp" android:left="2dp"> 
      <shape> 
       <gradient android:angle="270" 
        android:endColor="#E2E2E2" android:startColor="#BABABA" /> 
       <stroke android:width="1dp" android:color="#BABABA" /> 
       <corners android:radius="4dp" /> 
       <padding android:bottom="10dp" android:left="10dp" 
        android:right="10dp" android:top="10dp" /> 
      </shape> 
     </item> 
</layer-list> 

</item> 

</selector>