如何在线性布局周围添加边框,但底部除外?
LinearLayout需要在左侧、顶部和右侧具有边框,但底部不需要。
<?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的三星Galaxy S上进行了测试,并像下图所示完美运行:
此外,
也已在运行JellyBean 4.1.2的三星Galaxy S 3上进行了测试,并像下图所示完美运行:
最后,在所有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>
希望这能帮到你! :)肯尼是对的,我只想澄清一些事情。
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
放错了文件夹!
<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>