赞
踩
分享一下Android中实现下划线的几种方式:
一、通过TextView中的setFlags方法设置成Paint.UNDERLINE_TEXT_FLAG。
- tv=(TextView)findViewById(R.id.tv);
- tv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
实现效果如下:
二、为TextView设置背景Drawable
这里需要使用到LayerDrawable,对应于<layer-list>标签。在drawable目录下新建一个text_underline.xml文件,text_underline.xml的代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:left="-2dp"
- android:right="-2dp"
- android:top="-2dp">
- <shape>
- <stroke
- android:width="1dp"
- android:color="#008577" />
- </shape>
- </item>
- </layer-list>
然后设置TextView的android:background="@drawable/text_underline"
- <TextView
- android:id="@+id/tv"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@drawable/text_underline"
- android:text="Hello World!"
- android:textColor="#008577"
- android:textSize="15sp" />
实现效果如下:
总的来说,这种方法要相对灵活的多,既可以自由设置下划线的颜色和宽度;又可以通过android:paddingBottom属性设置下划线和文本的间距,不用像第一种方式那样紧凑;还可以通过<selector>标签来设置TextView按下或松开、获取焦点或失去焦点时下划线的不同颜色状态。
三、在TextView的下面添加一条横线
这种方法相对比较直观,也比较简单,但没有第二种方式灵活。
- <RelativeLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
- <TextView
- android:id="@+id/tv"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Hello World!"
- android:textColor="#008577"
- android:textSize="15sp" />
- <View
- android:layout_width="wrap_content"
- android:layout_height="1dp"
- android:layout_below="@+id/tv"
- android:layout_alignLeft="@+id/tv"
- android:layout_alignRight="@+id/tv"
- android:background="#008577" />
- </RelativeLayout>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。