我有一个TextView,我想在它的顶部和底部添加一个黑色的边框。我尝试将android:drawableTop和android:drawableBottom添加到TextView中,但这只会导致整个视图变为黑色。
<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)添加上边框和下边框?
发布于 2010-11-30 19:43:31
在Android2.2中,您可以执行以下操作。
创建一个xml可绘制文件,如/res/ drawable /textlines.xml,并将其指定为TextView的背景属性。
<TextView
android:text="My text with lines above and below"
android:background="@drawable/textlines"
/>/res/drawable/textlines.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="#FFDDDDDD" />
<solid android:color="#00000000" />
</shape>
</item>
</layer-list>这样做的缺点是你必须指定一个不透明的背景颜色,因为透明效果不起作用。(至少我认为他们是这样做的,但我错了)。在上面的例子中,你可以看到第一个形状#FFdddddd的纯色被复制到第二个形状的笔划颜色中。
发布于 2012-05-24 15:26:40
我使用了一个技巧,使边框显示在容器外部。使用此技巧时,只绘制了一条线,因此将显示底层视图的背景。
<?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>发布于 2015-06-23 12:37:33
要只在底部添加1dp白色边框并拥有透明的背景,您可以使用下面的方法,它比这里的大多数答案更简单。
对于TextView或其他视图,请添加:
android:background="@drawable/borderbottom"并在drawable目录中添加以下名为borderbottom.xml的XML
<?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将使用矩形形状创建边框,但随后会将顶部、右侧和左侧推到形状的渲染区域之外。这只会使底部边框可见。
https://stackoverflow.com/questions/1598119
复制相似问题