默认情况下,TextView\是不带边框的,如果要为TextView添加边框,我们就可以考虑为TextView设置一个背景Drawable,当然,该Drawable只是一个边框,这样就实现了带边框的TextView.由于可以为TextView设置背景Drawable对象,因此可以在定义Drawable时不仅指定边框,还可以指定渐变背景,这样既可以为TextView指定渐变背景和边框.
下面界面布局文件定义两个TextView:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!--通过background设置背景--> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="带边框的文本" android:textSize="24pt" android:background="@drawable/bg_border" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="圆角边框,渐变背景的文本" android:textSize="24pt" android:background="@drawable/bg_border2" /> </LinearLayout>在上面的布局中,两个TextView指定了background,都是由XML文件定义的,将文件放在drawable文件内,该文件可当成Drawable使用,代码如下:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <!--设置背景色为透明色--> <solid android:color="#0000"/> <!--设置红色边框--> <stroke android:width="4px" android:color="#f00"/> </shape>
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!--指定圆角矩形的4个圆角的半径--> <corners android:topLeftRadius="20px" android:topRightRadius="5px" android:bottomRightRadius="20px" android:bottomLeftRadius="5px"/> <!--指定边框线条的宽度和颜色--> <stroke android:width="4px" android:color="#f0f"/> <!--指定使用渐变背景色,使用sweep类型的渐变 颜色从红色->绿色->蓝色--> <gradient android:startColor="#f00" android:centerColor="#0f0" android:endColor="#00f" android:type="sweep"/> </shape>由此通过为TextView的android:background赋值,可为文本框增加大量自定义外观,这种控制方式相当灵活.
效果如图:
当然,这里介绍了TextView,但由于TextView是EditText和Button等类的父类,因此此处介绍的控制属性,对于他们同样适合.