Android自定义控件之可自定义背景颜色的圆角TextView
2016-07-12
前言
最近在做一个需求,就是实现一个可以自定义背景颜色,并且是圆角的TextView,如下图:
这个自定义控件实现起来非常简单,简要说一下思路吧:
- 最好继承TextView,这样就能继承TextView已有的功能
- 实现圆角TextView最简单的方法就是写一个包含圆角的Shape然后设置成TextView的背景
- 自定义TextView的背景颜色,就是要在修改这个Shape的背景颜色而不是修改TextView的背景颜色
第1点和第2点都比较常规,第3点如果对Drawable不太了解的话,不查资料是很难知道怎么解决的,下面来说说如何实现吧。
1 新建圆角背景
在res/drawable下新建一个xml,姑且取名为background_text_view_with_corners.xml
,xml的内容如下:
这个color的值只是一个默认样式的值,所以设置一个任意的就好。
2 新建自定义TextView
新建一个Java类继承TextView,干脆叫TextViewWithCorners
,实现如下:
可见,只是在初始化的时候,将背景设置成了刚才创建的圆角背景。那么,如果改变这个圆角背景的颜色呢?
3 实现自定义圆角背景的颜色
这里要用到的是GradientDrawable
这个类,详细的资料可以自行搜索,我们将TextViewWithCorners
的setBackgroundColor(int color)
方法重写,完整代码如下:
这样,这个可以自定义背景颜色并且是圆角的TextView就算完成了。
4 实际使用
在实际使用中也很简单,首先看看布局文件:
可见,和TextView的用法没什么差别,为了显示效果,需要给首尾添加一个Padding,然后将textColor设置成和背景色有一定反差的颜色。
然后看看在代码中如何设置背景颜色:
这样,就能实现文章开头中图片的效果了。
除非另有声明,本博客所有文章采用的授权方式为
自由转载-非商用-非衍生-保持署名
,转载请务必注明出处,谢谢。