Пунктирная граница для View через xml в Android
У меня есть простой Layout вида
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="250dp"
android:layout_height="200dp">
<TextView
android:text="asdfg"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</FrameLayout>
В окне предпросмотра (и при запуске) получается такой результат:
Мне нужно сделать так, чтобы по границе FrameLayout проходила пунктирная линия. Хочу получить нечто подобное:
Как можно добиться такого результата, не трогая код, а изменяя только Layout?
P.s. Текст в центре только для примера, задавать точный размер FrameLayout также не буду, это тоже для упрощения примера.
Ответы (1 шт):
Автор решения: Alex_Skvortsov
→ Ссылка
Задание пунктирной границы через Xml возможно следующим образом:
- Создаем в папке
res/drawableфайлdotted_border.xml, в полеRoot elementуказываем значениеshape:

В созданном файле изменяем код на следующий:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <stroke android:color="#B5B5B5" android:dashWidth="10px" android:dashGap="10px" android:width="1dp"/> </shape>Возвращаемся в исходный
Layoutи задаем свойствоandroid:backgroundдляFrameLayout:<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="250dp" android:layout_height="200dp" android:background="@drawable/dotted_border"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="asdfg" /> </FrameLayout>Наслаждаемся результатом:


