Как изменить цвет кнопки?
Я новичок в программировании Android. Как мне изменить цвет кнопки?
<Button
android:id="@+id/btn"
android:layout_width="55dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:text="Button Text"
android:paddingBottom="20dp"/>
Ответы
Ответ 1
Вы можете изменить цвет двумя способами; через XML или через кодирование. Я бы порекомендовал XML, так как для новичков было проще следовать.
XML:
<Button
android:background="@android:color/white"
android:textColor="@android:color/black"
/>
Вы также можете использовать шестнадцатеричные значения ex.
android:background="@android:color/white"
Кодирование:
//btn represents your button object
btn.setBackgroundColor(Color.WHITE);
btn.setTextColor(Color.BLACK);
Ответ 2
Для цвета текста добавьте:
android:textColor="<hex color>"
Для цвета фона добавьте:
android:background="<hex color>"
Из API 21 вы можете использовать:
android:backgroundTint="<hex color>"
android:backgroundTintMode="<mode>"
Примечание. Если вы собираетесь работать с android/java, вам действительно нужно научиться Google;)
Как настроить различные кнопки в Android
Ответ 3
Вот мой код, чтобы сделать разные цвета на кнопке, и Linear, Constraint и Scroll Layout
Во-первых, вам нужно сделать custom_button.xml на своем мобильном
- Перейти к res
- Разверните его, щелкните правой кнопкой мыши на drawable
- Новый → Файл ресурса с возможностью рисования
- Имя файла: custom_button, Нажмите OK.
Код Custom_Button.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/red"/> <!-- pressed -->
<item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused -->
<item android:drawable="@color/black"/> <!-- default -->
</selector>
Во-вторых, перейдите к res
- Развернуть значения
- Дважды щелкните по colors.xml
- Скопируйте код ниже
Код Colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="black">#000</color>
<color name="violet">#9400D3</color>
<color name="indigo">#4B0082</color>
<color name="blue">#0000FF</color>
<color name="green">#00FF00</color>
<color name="yellow">#FFFF00</color>
<color name="orange">#FF7F00</color>
<color name="red">#FF0000</color>
</resources>
Скриншоты ниже
XML-кодирование Предварительный просмотр дизайна
Ответ 4
Правильный путь...
Следующие методы действительно работают.
если хочешь - используй тему
По умолчанию цвет кнопок - android:colorAccent
. Итак, если вы создадите такой стиль...
<style name="Button.White" parent="ThemeOverlay.AppCompat">
<item name="colorAccent">@android:color/white</item>
</style>
Вы можете использовать это так...
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/Button.White"
/>
в качестве альтернативы - использование оттенка
Вы можете просто добавить android:backgroundTint
для API уровня 21 и выше или app:backgroundTint
для API уровня 7 и выше.
Для получения дополнительной информации см. Этот блог.
Проблема с принятым ответом...
Если вы замените фон цветом, вы потеряете эффект кнопки, и цвет будет применен ко всей области кнопки. Он не будет учитывать отступы, тени и радиус угла.
Ответ 5
Через программирование:
btn.setBackgroundColor(getResources().getColor(R.color.colorOffWhite));
и ваш colors.xml должен содержать...
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorOffWhite">#80ffffff</color>
</resources>
Ответ 6
Изменение цвета кнопки программно
Вот:
Button b1;
//colorAccent is the resource made in the color.xml file , you can change it.
b1.setBackgroundResource(R.color.colorAccent);