83 подписчика
💻 Как сделать кнопку на Android с бордером снизу и справа?
▶️Допустим, есть красная кнопка. Необходимо сделать бордер шириной 2dp снизу и справа, также нужно сделать изменение цвета кнопки во время нажатия на зеленый.
Можно это делать с помощью сторонней библиотеки BackgroundLibrary, вот так:
<androidx.appcompat.widget.AppCompatButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stateListAnimator="@null"
app:bl_unpressed_color="@color/colorAccent"
app:bl_pressed_color="@color/colorPrimaryDark"
app:bl_stroke_width="2dp"
app:bl_stroke_color="#2196F3"
app:bl_stroke_position="right|bottom"
android:text="Button"/>
Но как это сделать нативно с помощью drawable?
▶️В целом, всё не так сложно — нужно создать в папке Drawable файл button_background_ripple.xml:
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#9C1816"> // цвет заполнения при нажатии
<item>
<shape android:shape="rectangle">
<solid android:color="@color/colorAccent" /> // цвет в обычном состоянии
</shape>
</item>
<item
android:bottom="0dp" // обводка снизу как положено
android:left="-20dp" // обводка слева выведена за края (не видно)
android:right="0dp" // обводка справа как положено
android:top="-20dp"> // обводка сверху выведена за края (не видно)
<shape>
<stroke
android:width="2dp" // толщина обводки
android:color="#0000FA" /> // цвет обводки
</shape>
</item>
Затем нужно установить на кнопку бэкграундом:
android:background="@drawable/button_background_ripple"
Вот такие дела
1 минута
15 мая 2024