2017-02-22 67 views
1

我已經在xml中定義了我的按鈕。Android灰色的按鈕編程的設置爲XML中的backgroundTint?

<Button 
    android:id="@+id/button" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:visibility="visible" 
    android:text="@string/button_node" 
    android:textColor="@android:color/white" 
    android:backgroundTint="@color/colorAccent" /> 

我需要灰色代碼中的此按鈕。我用下面的代碼行來改變它。

button.setBackgroundResource(R.drawable.button_grey); 
button.setEnabled(false); 
button.setClickable(false) 

我button_grey.xml文件

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <gradient 
       android:angle="90" 
       android:endColor="@color/colorGray" 
       android:startColor="@color/colorGray" /> 
      <corners android:radius="4dp" /> 
     </shape> 
    </item> 

    <item 
     android:bottom="2dp" 
     android:left="1.5dp" 
     android:right="0.5dp" 
     android:top="0dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/cardview_shadow_start_color" /> 
      <corners android:radius="4dp" /> 
     </shape> 
    </item> 
</layer-list> 

後改變布敦看起來像這樣 enter image description here

,但實際上我需要的按鈕,可以像下面通過改變顏色爲灰色。 enter image description here 請注意: - 它應該從API級別18開始工作。

+0

難道你剛纔設置的按鈕,背景爲灰色在你的代碼?如果您希望該按鈕爲藍色,並帶有陰影,則可以將背景設置爲藍色並將其設爲海拔。 – Rachit

+0

海拔要求最低API級別21 – somia

+0

http://stackoverflow.com/a/30931750/3286614使用此設置海拔低於級別21. – Rachit

回答

1

試試這個它會工作

<?xml version="1.0" encoding="utf-8"?> 
<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="#24b8eb" android:startColor="#24b8eb" /> 
        <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> 

http://mobilenext.net/4-material-design-tweaks-pre-lollipop-android-devices/

http://www.techrepublic.com/article/android-lollipop-material-design-trick-offers-a-more-polished-ux/

+0

感謝Aditya你的答案幫助了我! – somia

+0

@somia很高興幫助你,快樂編碼:) –

相關問題