我想在Linearlayout
上添加一个底部和一个顶部边框。
我试过这样做:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="1dp"
android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
<stroke
android:width="1dp"
android:color="#000" />
</shape>
</item>
</layer-list>
但它在形状周围添加了边框..
你能帮我吗?
答案 0 :(得分:27)
我认为你可以创建这个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="#000"/>
</shape>
</item>
<item android:bottom="1dp" android:top="1dp">
<shape android:shape="rectangle" >
<solid android:color="#FFFFFF" />
</shape>
</item>
</layer-list>
首先想到的是绘制一个带边框颜色的矩形,然后在它上面放一个矩形,背景颜色在顶部和底部留下1dp。
答案 1 :(得分:22)
将此两个文件设为此代码。你可以设置边框顶部和底部边框,
<强> main.xml中强>
<TextView
android:text="This is textline"
android:background="@drawable/border_set"
/>
border_set.xml
此文件位于完整路径project_root/res/drawable/border_set.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="1dp" android:color="#FF000000" />
<solid android:color="#FFDDDDDD" />
</shape>
</item>
<item android:top="1dp" android:bottom="1dp">
<shape
android:shape="rectangle">
<stroke android:width="1dp" android:color="#000" />
<solid android:color="#FFFFFF" />
</shape>
</item>
</layer-list>
答案 2 :(得分:19)
这是解决方案。它甚至可以在透明的背景下工作。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:left="-2dp" android:right="-2dp">
<shape android:shape="rectangle">
<stroke android:width="2dp" android:color="@color/borderColor" />
<solid android:color="@color/backgroundColor" />
</shape>
</item>
</layer-list>
答案 3 :(得分:6)
我的版本是这样,只有边框顶部和底部可见,不显示左边或右边的边框。背景是透明的。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="1dp">
<item
android:left="-1dp"
android:right="-1dp"
android:top="-1dp"
android:bottom="1dp">
<shape
android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/BlueGrey_colorPrimary" />
<solid android:color="@android:color/transparent" />
</shape>
</item>
</layer-list>
答案 4 :(得分:6)
我相信这是最简单的方法:
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="#000000" />
答案 5 :(得分:5)
实现这一目标的快捷方法:
我希望这有帮助!
答案 6 :(得分:1)
简单。绘制3个这样的形状。
<?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="@color/menu_line_separator_in" />
</shape>
</item>
<item android:bottom="1.5dp">
<shape android:shape="rectangle" >
<solid android:color="@color/menu_line_separator_out" />
</shape>
</item>
<item android:top="1.5dp">
<shape android:shape="rectangle" >
<solid android:color="@color/menu_line_separator_out" />
</shape>
</item>
</layer-list>
答案 7 :(得分:1)