您可以将可绘制的形状(矩形)设置为视图的背景。
<TextView android:text="Some text" android:background="@drawable/back"/>
和矩形 drawable back.xml(放入 res / drawable 文件夹):
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="@android:color/white" />
<stroke android:width="1dip" android:color="#4fa5d5"/>
</shape>
您可以使用@android:color/transparent
来使纯色具有透明背景。您还可以使用填充将文本与边框分开。有关更多信息,请参见: http://developer.android.com/guide/topics/resources/drawable-resource.html
让我总结一些不同的(非编程)方法。
将以下内容另存为 XML 文件到您的可绘制文件夹中(例如,my_border.xml):
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- View background color -->
<solid
android:color="@color/background_color" >
</solid>
<!-- View border color and width -->
<stroke
android:width="1dp"
android:color="@color/border_color" >
</stroke>
<!-- The radius makes the corners rounded -->
<corners
android:radius="2dp" >
</corners>
</shape>
然后只需将其设置为 TextView 的背景即可:
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/my_border" />
更多帮助:
9 色块是可拉伸的背景图像。如果您制作带有边框的图像,那么它将为您的 TextView 提供边框。您所需要做的就是制作图像,然后将其设置为 TextView 中的背景。
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/my_ninepatch_image" />
以下是一些链接,这些链接将显示如何制作 9 个补丁的图像:
使用图层列表
您可以使用图层列表将两个矩形相互堆叠。通过使第二个矩形略小于第一个矩形,可以制作边框效果。第一个(下部)矩形是边框颜色,第二个矩形是背景颜色。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Lower rectangle (border color) -->
<item>
<shape android:shape="rectangle">
<solid android:color="@color/border_color" />
</shape>
</item>
<!-- Upper rectangle (background color) -->
<item android:top="2dp">
<shape android:shape="rectangle">
<solid android:color="@color/background_color" />
</shape>
</item>
</layer-list>
设置android:top="2dp"
会使顶部偏移 2dp(使其变小)。这允许第一个(下部)矩形显示出来,从而产生边框效果。您可以将其应用于 TextView 背景,方法与上述可绘制shape
以下是有关图层列表的更多链接:
使用 9 补丁
您可以只制作一个带有单个边框的 9 色块图像。其他所有内容都与上面讨论的相同。
使用视图
这是一种技巧,但是如果您需要在两个视图之间或单个 TextView 的边框之间添加分隔符,则效果很好。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textview1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<!-- This adds a border between the TextViews -->
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@android:color/black" />
<TextView
android:id="@+id/textview2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
这里有一些更多的链接:
简单的方法是为 TextView 添加一个视图。下边界线示例:
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:text="@string/title"
android:id="@+id/title_label"
android:gravity="center_vertical"/>
<View
android:layout_width="fill_parent"
android:layout_height="0.2dp"
android:id="@+id/separator"
android:visibility="visible"
android:background="@android:color/darker_gray"/>
</LinearLayout>
对于其他方向的边界,请调整分隔符视图的位置。