2015-06-05 6 views
6

Qualcuno sa come cambiare il colore del pulsante?Tasti da colorare in Android con AppCompat

ma un pulsante particolare, non tutti i pulsanti dell'applicazione che utilizzano l'XML.

L'attributo android: backgroundTint non funziona su pre-Lollipop anche con la libreria AppCompat. Solo colorButtonNormal dal tema funziona su pre-Lollipop .

È vero? che vergogna

Sto usando questo drawable (è un semplice colore verde) con un pulsante, ma quando uso il pulsante risulta essere superiore al pulsante normale.

Questo è il file 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> 

il pulsante è questo:

  <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" /> 

quando uso esimo e drawable, il pulsante è più alto del pulsante normale (senza il drawable), non so perché.

+0

Si sta utilizzando un tema AppCompat? –

risposta

6

C'è un modo per impostare lo BackgroundTint in dispositivi pre-lecca-lecca. Prova questo: button.setSupportBackgroundTintList(getResources().getColorStateList(R.color.accentColor)); Fare riferimento a questa risposta: Lollipop's backgroundTint has no effect on a Button

+2

Ora dovresti usare 'ViewCompat.setBackgroundTintList (view, colorList)' invece di 'button.setSupportBackgroundTintList' –

+0

ma nell'XML c'è un modo per farlo? – seba123neo

9

se si desidera sotto stile

enter image description here

aggiungere questo stile il pulsante

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

se si desidera che questo stile

enter image description here

aggiungere sottostante Codice

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