Intereting Posts
Создайте версию apk с настройкой формата имени в Android Studio Не удалось проверить, был ли будильник установлен AlarmManager Настроить фокус большого пальца и нажимать на пользовательскую панель поиска программно Android – утечка памяти при динамическом создании пользовательского интерфейса с фоном ресурсов изображения Android – от двух до десяти знаков Невозможно использовать метод setForeground для ImageView Привязка данных android с использованием логического оператора «&&» Изображение в виджет Android Studio: lambda не работает Разработка приложения похожа на «Google сейчас» – возможно ли использовать распознавание голоса без ввода ключа? Не удалось создать папку / файл в файловой системе Android с помощью PCLStorage или Xamarin Forms Labs Стили homeAsUpIndicator не применяются к проекту Android Studio по умолчанию Аккумулятор Android в SDK В каких условиях возможны изменения в версии 3 для клиентских приложений, внесенные в клиентские устройства? Google Play Android .apk Загрузить «Не удалось запустить апап-дамп-бейджинг»

Как сделать нижнюю границу в выделенной форме 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>