我有一个大的布局,和一个较小的布局里面。
如何在小布局周围创建线条边框?
当然。您可以向任何想要的布局添加边框。基本上,您需要创建一个自定义绘图,并将其作为背景添加到布局中。例如:
在可绘制文件夹中创建一个名为 customborder.xml的文件:
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">
这样应该可以了。
参见:
在可绘制文件夹中创建名为 border.XML 的 XML,如下所示:
<?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/draable/my _ custom_ backound.xml 定义为:
(在您的可绘制文件夹中创建此布局) outs _ orders. 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 文件
<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 的主体将是透明的。
首先,在可绘制文件夹 border.xml中创建这个可绘制的边框
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>
然后,在 LinearLayout 视图中,添加 border.xml 作为背景,如下所示
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/border">
你也可以务实地去做
GradientDrawable gradientDrawable=new GradientDrawable(); gradientDrawable.setStroke(4,getResources().getColor(R.color.line_Input));
然后将布局的背景设置为:
LinearLayout layout = (LinearLayout ) findViewById(R.id.ayout); layout .setBackground(gradientDrawable);
我将添加 Android 文档链接到其他答案。
Https://developer.android.com/guide/topics/resources/drawable-resource.html#shape
它描述了形状可绘制的所有属性和其中的 stroke来设置边框。
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>
红色边框,背景透明。
不想创建可绘制的资源?
<FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/black" android:minHeight="128dp"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="1dp" android:background="@android:color/white"> <TextView ... /> </FrameLayout> </FrameLayout>
试试这个在您的重新/绘制
<?xml version="1.0" encoding="UTF-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <padding android:left="15dp" android:right="15dp" android:top="15dp" android:bottom="15dp"/> <stroke android:width="10dp" android:color="@color/colorPrimary"/> </shape> </item><item android:left="-5dp" android:right="-5dp" android:top="-5dp" android:bottom="-5dp"> <shape android:shape="rectangle"> <solid android:color="@color/background" /> </shape></item></layer-list>
似乎没有人使用我们提出的方法,所以我想我会分享,因为它涉及到更简单的代码。 简单地将一个布局嵌套在另一个布局中,用填充物填充,外面的布局可以着色,形成一个框架。
<androidx.appcompat.widget.LinearLayoutCompat android:id="@+id/llSignatureBorder" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:background="@android:color/black" android:orientation="vertical" android:padding="4dp"> <com.yourmom.mobiledriverapp.Controls.SignatureArea android:id="@+id/signatureArea" android:layout_width="@dimen/signaturearea_width" android:layout_height="@dimen/signaturearea_height" android:layout_gravity="center_horizontal" android:layout_margin="10dp" /> </androidx.appcompat.widget.LinearLayoutCompat>