Как сделать нижнюю границу в выделенной форме XML-селектором?

Я пытаюсь создать форму для рисования с разными состояниями для моей кнопки. Поэтому я написал следующее:

<selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:color="@android:color/black" > <shape android:shape="rectangle" > <solid android:color="@color/NEGATIVE_pressed" /> <stroke android:width="1dp" android:color="@color/ORANGE" /> <corners android:radius="4dp" /> </shape> </item> <item android:state_focused="true" android:color="@android:color/black" > <shape android:shape="rectangle" > <solid android:color="@color/NEGATIVE_focused" /> <stroke android:width="1dp" android:color="@color/ORANGE" /> <corners android:radius="4dp" /> </shape> </item> <item android:color="@android:color/black" > <shape android:shape="rectangle" > <solid android:color="@color/NEGATIVE" /> <stroke android:width="1dp" android:color="@color/NEGATIVE" /> <corners android:radius="4dp" /> </shape> </item> </selector> 

Затем в моей кнопке я использую его как android:background="@drawable/btn_negative_selector"

Тем не менее, я хочу нарисовать нижнюю границу этой формы, чтобы быть чем-то вроде 3 dp и разного цвета, но я не могу понять, как это сделать. Я попробовал поиск, но не нашел ничего подходящего для селектора. Любые предложения, пожалуйста?

Solutions Collecting From Web of "Как сделать нижнюю границу в выделенной форме XML-селектором?"

Сначала я разделяю фигуры, чтобы упростить их управление.

Это ваш btn_negative_selector.xml

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@xml/rectangle_button_pressed" android:state_pressed="true"></item> <item android:drawable="@xml/rectangle_button_focused" android:state_focused="true"></item> <item android:drawable="@xml/rectangle_button" ></item> </selector> 

Создайте папку «xml» в своих разрешениях и сохраните эти фигуры в ней:

1) rectangle_button_pressed:

  <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="@color/NEGATIVE_pressed" /> <stroke android:width="1dp" android:color="@color/ORANGE" /> <corners android:radius="4dp" /> </shape> 1  <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="@color/NEGATIVE_pressed" /> <stroke android:width="1dp" android:color="@color/ORANGE" /> <corners android:radius="4dp" /> </shape> 

2) rectangle_button_focused:

  <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="@color/NEGATIVE_focused" /> <stroke android:width="1dp" android:color="@color/ORANGE" /> <corners android:radius="4dp" /> </shape> 1  <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="@color/NEGATIVE_focused" /> <stroke android:width="1dp" android:color="@color/ORANGE" /> <corners android:radius="4dp" /> </shape> 

3) У этого прямоугольника rectangle_button.xml будет граница в нижней части его, определяя форму, используя <layer-list>. First <item> – нижний слой, а последний <item> – это верхний слой.

 <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle"> <solid android:color="@color/gray"/> <corners android:radius="4dp"/> </shape> </item> <item android:bottom="3dp"> <shape android:shape="rectangle"> <solid android:color="@color/orange" /> <corners android:radius="4dp"/> </shape> </item> </layer-list>