2015-06-05 12 views
6

Czy ktoś wie, jak zmienić kolor przycisku?Przyciski kolorowania w systemie Android z AppCompat

ale jeden konkretny przycisk, a nie wszystkie przyciski aplikacji używające XML.

Atrybut android: backgroundTint nie działa na pre-Lollipop nawet z biblioteką AppCompat. Tylko colorButtonNormal z kompozycji działa na pre-Lollipop.

Czy to prawda? co za wstyd

Używam tego drawowalnego (jest prosty zielony kolor) z przyciskiem, ale kiedy używam przycisku okazuje się być wyższy niż normalny przycisk.

jest to plik btn_green.xml

<?xml version="1.0" encoding="utf-8"?> 

<item android:state_pressed="true"><shape> 
     <solid android:color="#ff5722" /> 

     <corners android:radius="4dp" /> 
    </shape></item> 
<item android:state_focused="true"><shape android:shape="rectangle"> 
     <solid android:color="#4caf50" /> 

     <corners android:radius="4dip" /> 

     <stroke android:width="1dip" android:color="#F0FC00" /> 
    </shape></item> 
<item><shape> 
     <solid android:color="#4caf50" /> 

     <corners android:radius="4dp" /> 
    </shape></item> 

przycisk to:

  <android.support.v7.widget.AppCompatButton 
      android:id="@+id/btnIngresar" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/btn_green" 
      android:text="Hello" 
      android:textStyle="bold" /> 

gdy używam th e drawable, przycisk jest wyższy niż normalny przycisk (bez drawable), nie wiem dlaczego.

+0

Czy używasz motywu AppCompat? –

Odpowiedz

6

Istnieje sposób ustawiania BackgroundTint w urządzeniach pre-Lollipop. Spróbuj tego: button.setSupportBackgroundTintList(getResources().getColorStateList(R.color.accentColor)); Patrz tej odpowiedzi: Lollipop's backgroundTint has no effect on a Button

+2

Teraz powinieneś użyć 'ViewCompat.setBackgroundTintList (view, colorList)' zamiast 'button.setSupportBackgroundTintList' –

+0

, ale czy w XML istnieje sposób na zrobienie tego? – seba123neo

9

jeśli chcesz poniżej stylu

enter image description here

dodać swój przycisk

style="@style/Widget.AppCompat.Button.Borderless.Colored" 

ten styl, jeśli chcesz ten styl

enter image description here

dodać poniżej kodu

style="@style/Widget.AppCompat.Button.Colored"