我如何在Android textview中添加边框?
是否有可能在textview上绘制边框?
您可以将可绘制的形状(矩形)设置为视图的背景。
<TextView android:text="Some text" android:background="@drawable/back"/>
和矩形可绘制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个补丁
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>
对于其他方向边界,请调整分隔视图的位置。
链接地址: http://www.djcxy.com/p/36581.html