除了底部,如何在线性布局上添加边框?

除了底部,如何在线性布局上添加边框? LinearLayout需要在左侧,顶部和右侧有边界,但不在底部。

在可绘制文件夹中创build一个名为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" 

编辑:

这个XML是用运行GingerBread 2.3.3的星系进行testing的,如下图所示:

在这里输入图像说明

与运行JellyBean 4.1.2的星系s 3进行testing,并完美地运行,如下图所示:

在这里输入图像说明

最后它的作品完美地与所有的API

编辑2:

也可以使用笔画来完成背景透明,同时仍然保持边框,除了在底部使用下面的代码。

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="0dp" android:right="0dp" android:top="0dp" android:bottom="-10dp"> <shape android:shape="rectangle"> <stroke android:width="10dp" android:color="#B22222" /> </shape> </item> </layer-list> 

希望这个帮助。

保存此xml并添加为线性布局的背景….

 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="4dp" android:color="#FF00FF00" /> <solid android:color="#ffffff" /> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="0dp" /> <corners android:radius="4dp" /> </shape> 

希望这可以帮助! 🙂

肯尼是对的,只是想清除一些事情。

  1. 创build文件border.xml并把它放在res/drawable/
  2. 添加代码

     <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="4dp" android:color="#FF00FF00" /> <solid android:color="#ffffff" /> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="0dp" /> <corners android:radius="4dp" /> </shape> 
  3. 设置回地面像android:background="@drawable/border"无论你想要的边界

我的第一个没有工作,因为我把border.xml放在错误的文件夹中!

这里有一个Github链接,指向一个轻量级且非常易于集成的库,使您可以根据需要为任何窗口小部件玩边框,只需基于FrameLayout小部件。

下面是一个快速示例代码,让您看到它是多么容易,但是您会在链接中find更多信息。

 <com.khandelwal.library.view.BorderFrameLayout android:layout_width="match_parent" android:layout_height="match_parent" app:leftBorderColor="#00F0F0" app:leftBorderWidth="10dp" app:topBorderColor="#F0F000" app:topBorderWidth="15dp" app:rightBorderColor="#F000F0" app:rightBorderWidth="20dp" app:bottomBorderColor="#000000" app:bottomBorderWidth="25dp" > </com.khandelwal.library.view.BorderFrameLayout> 

所以,如果你不想在底部的边界,删除这个自定义小部件底部的两行,这就完成了。

不,我既不是这个图书馆的作者,也不是他的朋友之一;-)