24

我只想在我的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>

但它在形状周围添加了一个边框..

请问你能帮帮我吗 ?

4

8 回答 8

30

我认为您可以创建此可绘制对象并将其用作背景:

<?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。

于 2015-01-20T09:27:06.413 回答
25

制作这两个文件并放入此代码。您可以设置边框顶部和底部边框,

主要的.xml

<TextView
      android:text="This is textline"
      android:background="@drawable/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>
于 2014-04-22T10:08:06.033 回答
22

这是解决方案。它甚至适用于透明背景。

<?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>
于 2015-08-26T10:16:26.463 回答
14

我相信这是最简单的方法:

<View
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:background="#000000" />
于 2017-12-19T03:39:45.113 回答
10

这是我的版本;上边框和下边框可见,不显示左边框或右边框。而且背景是透明的。

<?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>
于 2016-12-09T17:10:54.807 回答
6

实现此目的的快速方法:

  • 将文本视图添加到布局的底部和/或顶部。
  • 将 TextView 的宽度设置为“match_parent”
  • 将 TextView 的高度设置为大约“1dp”或找到您想要的厚度
  • 将 TextView 的背景设置为您希望边框的颜色

我希望这有帮助!

于 2016-07-28T15:52:46.397 回答
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>
于 2014-04-22T10:06:57.517 回答
1

您可以点击此链接是否有一种简单的方法可以在 Android 视图的顶部和底部添加边框?

我希望你能从这个链接中解决。你也可以解决如何在除底部之外的线性布局周围添加边框?

于 2014-04-22T10:09:25.360 回答