除了底部,如何在线性布局上添加边框?
除了底部,如何在线性布局上添加边框? 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>
希望这可以帮助! 🙂
肯尼是对的,只是想清除一些事情。
- 创build文件
border.xml
并把它放在res/drawable/
-
添加代码
<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>
-
设置回地面像
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>
所以,如果你不想在底部的边界,删除这个自定义小部件底部的两行,这就完成了。
不,我既不是这个图书馆的作者,也不是他的朋友之一;-)