Изменение цвета округлой кнопки с прозрачным фоном
Как я могу изменить цвет закругленных углов textView или кнопки с прозрачным фоном, как это изображение
Я хочу, чтобы при повторном нажатии кнопки отменить выбор, а не только выбрать
3 ответа
Добавить XML-файл в папку для рисования bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<!-- you can use any color you want I used here gray color-->
<stroke
android:height="1.0dip"
android:width="1.0dip"
android:color="#ffee82ee" />
<solid android:color="@android:color/transparent"/>
<corners android:radius="7dp"/>
</shape>
и в макете
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg"
android:textColor="#ffee82ee"/>
Это будет работать..
Вы можете использовать селектор с несколькими состояниями для рисования фона и цвета текста.
<Button
android:id="@+id/button1"
android:background="@drawable/selector_xml_name"
android:layout_width="200dp"
android:layout_height="126dp"
android:text="Hello" />
нарисованный XML-файл:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item>
<item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item>
<item android:drawable="@drawable/numpad_button_bg_normal"></item>
</selector>
Вы должны создать фон с помощью селектора
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_pressed="true" android:drawable="@drawable/likeactivepressed" />
<item android:state_pressed="true" android:drawable="@drawable/likeinitialpressed"/>
<item android:state_checked="true" android:drawable="@drawable/likeon"/>
<item android:drawable="@drawable/likeinitial"/>
</selector>
затем установите фон на кнопку:
android:background="@drawable/like_button"
У вас есть разные варианты:
- Просто используйте
MaterialButton
в библиотеке компонентов материала сWidget.MaterialComponents.Button.OutlinedButton
стиль иapp:cornerRadius
,app:strokeColor
атрибуты.
Что-то типа:
<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:text="BUTTON"
app:strokeColor="@color/myColor"
app:cornerRadius="16dp"
../>
Для выбора кнопок вы можете использовать MaterialButtonToggleGroup
.
Что-то типа:
<com.google.android.material.button.MaterialButtonToggleGroup
app:singleSelection="true"
...>
<com.google.android.material.button.MaterialButton
.../>
</com.google.android.material.button.MaterialButtonToggleGroup>
- Использовать
Chip
Что-то типа:
<com.google.android.material.chip.Chip
style="@style/Widget.MaterialComponents.Chip.Entry"
app:chipCornerRadius="16dp"
android:text="Chip"
.../>