Intereting Posts
MAVEN Недопустимый SDK: уровень 16 для платформы / API недоступен Что такое замена устаревших MODE_WORLD_READABLE SharedPreferences в Android? Выполнение не выполнено для задачи ': app: packageDebug' – Не удалось прочитать zip-файл Вызвать родительскую активность из фрагмента Как скрыть фотографии из галереи и сохранить ее в моем приложении Как рисовать и масштабировать растровое изображение на холсте с использованием бикубической интерполяции в Android? MonoDroid: Fragment.Instantiate ClassNotFoundException Что делать с никогда не случающимися, бесполезными исключениями? Добавление программ просмотра изображений в FrameLayout программно, затем изменение их позиций Поле Android TextView SingleLine скрывает длинный текст Android SDK Mediaplayer.create случайным образом возвращает null Как добавить другой фрагмент в существующий фрагмент? Почему добавление OnClickListener внутри onBindViewHolder из RecyclerView.Adapter считается плохой практикой? Хранить AsyncTask во время вращения, но не удалять активность Как обнаружить потоки / переполнение Android audiostream?

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