Цвет кнопки Andriod Studio не меняется

#xml #android-studio #button

Вопрос:

В моем приложении для Android я хочу, чтобы угол одной из кнопок был закруглен, а ее цвет отличался от цвета по умолчанию. Я создал xml-файл, который позволил бы достичь этого. После установки этого xml-файла в качестве фона моей кнопки форма изменилась, но цвет остался по умолчанию. Я попытался установить этот xml-файл в качестве фона текстового представления, и это отлично сработало. В button_shape.xml:

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="20dp" />
    <solid android:color="#03A9F4" />
</shape>
 

Кнопка:

 <Button
    android:id="@ id/btRandom"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="250dp"
    android:background="@drawable/button_shape"
    android:text="MyButton"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@id/tvTitle" />
 

Комментарии:

1. Здравствуйте, вы можете попробовать изменить оттенок кнопки на #03A9F4

2. Я уже пробовал это, но если фон установлен в этот xml-файл, цвет не изменится, даже если я изменю оттенок.

3. Вы можете попробовать создать стиль кнопки с этим фоном и оттенком и применить его к этой кнопке

Ответ №1:

Заменить Theme.MaterialComponents.DayNight.DarkActionBar на в Theme.AppCompat.DayNight.DarkActionBar разделе папки res—> значения—>> темы —>>> themes.xml. В Android studio 4.1 по умолчанию тема уже применяется к кнопкам. Тогда вы можете просто сказать: android:background="@color/black" например.