Matix
Matix

Reputation: 25

Button color from drawable doesn't change

I have some issue with styling of my buttons. I use drawable to change shape and style my app buttons. When I add background in activity xml my buttons change shape but doesn't change background color but when I add background programmatically with "setBackgroundResource" method everything is ok. There is my piece of code:

activity xml:

`<Button
        android:id="@+id/button_traditional"
        android:background="@drawable/button_default_main_app"
        android:textColor="@color/mustard"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="75dp"
        android:layout_marginEnd="32dp"
        android:onClick="newGame"
        android:text="@string/standard_game"
        app:layout_constraintEnd_toStartOf="@+id/button_extended"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/text_gameChose" />
`

res/drawable:

<solid
    android:color="@color/black"
    />
<corners
    android:topLeftRadius="10dp"
    android:topRightRadius="100dp"
    android:bottomLeftRadius="100dp"
    android:bottomRightRadius="10dp"
    />

Thanks in advance for your help.

Edit: Whole drawable code:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid
        android:color="@color/black"
        />
    <corners
        android:topLeftRadius="10dp"
        android:topRightRadius="100dp"
        android:bottomLeftRadius="100dp"
        android:bottomRightRadius="10dp"
        />

</shape>

Upvotes: 0

Views: 816

Answers (1)

Mayur Gajra
Mayur Gajra

Reputation: 9073

By default the button tint is the primary color. You need to set it to null for the drawable to take effect by setting.

app:backgroundTint="@null"

So your whole button would look like this:

 <Button
        android:id="@+id/button_traditional"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="75dp"
        android:layout_marginEnd="32dp"
        android:background="@drawable/button_default_main_app"
        android:onClick="newGame"
        android:text="Standard game"
        android:textColor="#a00"
        app:backgroundTint="@null" />

The result:

Button bg

Upvotes: 1

Related Questions