Как я могу создать границу вокруг Android LinearLayout?
У меня есть один большой макет, и один небольшой макет внутри него.
Как создать границу линии вокруг небольшого макета?
7 ответов:
конечно. Вы можете добавить границу в любой макет, который вы хотите. В принципе, вы должны создать пользовательский объект и добавить его в качестве фона для вашего макета. пример:
создайте файл с именем
customborder.xml
в вашей папке для рисования:<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="20dp"/> <padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/> <stroke android:width="1dp" android:color="#CCCCCC"/> </shape>
теперь примените его в качестве фона для вашего меньшего макета:
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/customborder">
это должно сделать трюк.
также смотрите:
создать XML называется граница.xml в папке drawable, как показано ниже:
<?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="#FF0000" /> </shape> </item> <item android:left="5dp" android:right="5dp" android:top="5dp" > <shape android:shape="rectangle"> <solid android:color="#000000" /> </shape> </item> </layer-list>
затем добавить в линейный макет в качестве фона, как это:
android:background="@drawable/border"
попробуйте это:
например, давайте определим res/drawable / my_custom_background.xml как:
(создать этот макет в папке drawable) layout_border.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <stroke android:width="2dp" android:height="2dp" android:color="#FF0000" /> <solid android:color="#000000" /> <padding android:left="1dp" android:top="1dp" android:right="1dp" android:bottom="1dp" /> <corners android:radius="1dp" android:bottomRightRadius="5dp" android:bottomLeftRadius="0dp" android:topLeftRadius="5dp" android:topRightRadius="0dp" /> </shape> </item> </layer-list>
главная.xml
<LinearLayout android:layout_gravity="center" android:layout_width="200dp" android:layout_height="200dp" android:background="@drawable/layout_border" /> </LinearLayout>
создать один xml-файл в папке drawable
<stroke android:width="2dp" android:color="#B40404" /> <padding android:bottom="5dp" android:left="5dp" android:right="5dp" android:top="5dp" /> <corners android:radius="4dp" />
теперь вызовите этот xml для вашего небольшого фона макета
android: background= "@drawable/yourxml"
Это решение только добавит границу, тело LinearLayout будет прозрачным.
во-первых, создайте эту границу drawable в папке drawable,
border.xml
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android= "http://schemas.android.com/apk/res/android" android:shape="rectangle"> <stroke android:width="2dp" android:color="#ec0606"/> <corners android:radius="10dp"/> </shape>
тогда, на ваш взгляд макет, добавить границы.xml в качестве фона, как это
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/border">
Я добавлю ссылку на документы Android к другим ответам.
https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape
Он описывает все атрибуты формы Drawable и
stroke
среди них установить границу.пример:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <stroke android:width="1dp" android:color="#F00"/> <solid android:color="#0000"/> </shape>
красная граница с прозрачным фоном.
вы можете сделать это прагматично и
GradientDrawable gradientDrawable=new GradientDrawable(); gradientDrawable.setStroke(4,getResources().getColor(R.color.line_Input));
затем установите фон макета как:
LinearLayout layout = (LinearLayout ) findViewById(R.id.ayout); layout .setBackground(gradientDrawable);