首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有一种简单的方法可以在Android View的顶部和底部添加边框?

有没有一种简单的方法可以在Android View的顶部和底部添加边框?
EN

Stack Overflow用户
提问于 2009-10-21 08:34:14
回答 24查看 464.6K关注 0票数 427

我有一个TextView,我想在它的顶部和底部添加一个黑色的边框。我尝试将android:drawableTopandroid:drawableBottom添加到TextView中,但这只会导致整个视图变为黑色。

代码语言:javascript
运行
复制
<TextView
    android:background="@android:color/green"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:drawableTop="@android:color/black"
    android:drawableBottom="@android:color/black"
    android:text="la la la" />

有没有一种方法可以在Android中轻松地为视图(特别是TextView)添加上边框和下边框?

EN

回答 24

Stack Overflow用户

回答已采纳

发布于 2010-11-30 19:43:31

在Android2.2中,您可以执行以下操作。

创建一个xml可绘制文件,如/res/ drawable /textlines.xml,并将其指定为TextView的背景属性。

代码语言:javascript
运行
复制
<TextView
android:text="My text with lines above and below"
android:background="@drawable/textlines"
/>

/res/drawable/textlines.xml

代码语言:javascript
运行
复制
<?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="#FFDDDDDD" />
            <solid android:color="#00000000" />
        </shape>
   </item>

</layer-list>

这样做的缺点是你必须指定一个不透明的背景颜色,因为透明效果不起作用。(至少我认为他们是这样做的,但我错了)。在上面的例子中,你可以看到第一个形状#FFdddddd的纯色被复制到第二个形状的笔划颜色中。

票数 450
EN

Stack Overflow用户

发布于 2012-05-24 15:26:40

我使用了一个技巧,使边框显示在容器外部。使用此技巧时,只绘制了一条线,因此将显示底层视图的背景。

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:bottom="1dp"
        android:left="-2dp"
        android:right="-2dp"
        android:top="-2dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1dp"
                android:color="#FF000000" />

            <solid android:color="#00FFFFFF" />

            <padding android:left="10dp"
                android:right="10dp"
                android:top="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

</layer-list>
票数 299
EN

Stack Overflow用户

发布于 2015-06-23 12:37:33

要只在底部添加1dp白色边框并拥有透明的背景,您可以使用下面的方法,它比这里的大多数答案更简单。

对于TextView或其他视图,请添加:

代码语言:javascript
运行
复制
android:background="@drawable/borderbottom"

并在drawable目录中添加以下名为borderbottom.xml的XML

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="-2dp" android:left="-2dp" android:right="-2dp">
        <shape android:shape="rectangle">
            <stroke android:width="1dp" android:color="#ffffffff" />
            <solid android:color="#00000000" />
        </shape>
    </item>
</layer-list>

如果要在顶部显示边框,请将android:top="-2dp"更改为android:bottom="-2dp"

颜色不需要是白色,背景也不需要是透明的。

solid元素可能不是必需的。这将取决于您的设计(感谢V. Kalyuzhnyu)。

基本上,此XML将使用矩形形状创建边框,但随后会将顶部、右侧和左侧推到形状的渲染区域之外。这只会使底部边框可见。

票数 112
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1598119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档