-1

我有20個不同的圖標按鈕(圖像)我需要改變按鈕的背景顏色,當我點擊(按),並保持背景圖標(圖)更改按鈕的背景顏色,並保持圖標(圖像)當用戶按下它

我需要的東西,並不需要做出選擇每個按鈕,因爲所有的按鈕都應該有相同的背景顏色(正常和選擇),只有不同的圖標

我發現這個概念,但使用它將需要選擇每個按鈕

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true"> 
     <layer-list> 
      <item> 
       <bitmap android:gravity="center" android:src="@drawable/bm_btn_background" android:tileMode="repeat" /> 
      </item> 
      <item> 
       <shape> 
        <gradient android:angle="270" android:endColor="#a0e0b071" android:startColor="#a0a67637" /> 
        <stroke android:width="1dp" android:color="#5c3708" /> 
        <corners android:radius="5dp" /> 
        <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> 
       </shape> 
      </item> 
     </layer-list> 
    </item> 

    <item android:state_enabled="true"> 
     <layer-list> 
      <item> 
       <bitmap android:gravity="center" android:src="@drawable/bm_btn_background" android:tileMode="repeat" /> 
      </item> 
      <item> 
       <shape android:shape="rectangle"> 
        <gradient android:angle="270" android:endColor="#a0a67637" android:startColor="#a0e0b071" /> 
        <stroke android:width="1dp" android:color="#5c3708" /> 
        <corners android:radius="5dp" /> 
        <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> 
       </shape> 
      </item> 
     </layer-list> 
    </item> 


</selector> 

回答

0

將按鈕的色調顏色(XML中的android:backgroundTint屬性)設置爲其未選中的顏色。

然後,在按鈕的onClick方法執行這對按鈕的色調顏色改變爲選中狀態:

//按鈕的背景色調顏色設置爲選中狀態的顏色 button.setBackgroundTintList(ContextCompat.getColorStateList(此,selectedIntColour));

相關問題