Android 中设置TextView的颜色有方法setTextColor,这个方法被重载了,可以传入两种参数。一种方法是传入int color值,要注意这个int不是R文件中自动分配的十六进制int值,这是Color类中的静态方法构造出来的颜色int值。另一种方法是通过ColorStateList得到xml中的配置的颜色的。好多需要xml中配置的都要类似这样的映射xml文件(比如一个按钮事件的选择器,默认状态为颜色A,点击时状态为颜色B等等选择效果)。
setTextColor的两种重载方法如下:
[java] view plain copy
publicvoidsetTextColor(intcolor) {
mTextColor = ColorStateList.valueOf(color)
updateTextColors()
}
publicvoidsetTextColor(ColorStateList colors) {
if(colors ==null) {
thrownewNullPointerException()
}
mTextColor = colors
updateTextColors()
}
第一种重载方法有以下实现方式:
方法一:通过ARGB值的方式
textview.setTextColor(Color.rgb(255,255, 255))
textview.setTextColor(Color.parseColor("#FFFFFF"))
方法二:通过资源引用
textview.setTextColor(mContext.getResources().getColor(R.drawable.contact_btn_text_red))
#f2497c
第二种重载方法的实现:
[java] view plain copy
textview.setTextColor(mContext.getResources().getColorStateList(R.drawable.big_btn_text_color))
选择器big_btn_text_color.xml
[html] view plain copy
利用系统自带的颜色类TextView1.setTextColor(android.graphics.Color.RED)
数字颜色表示法
TextView1.setTextColor(0xffff00ff)
自定义颜色
TextView1.setTextColor(this.getResources().getColor(R.drawable.red))
我在values文件夹下新建一个color.xml,内容如下:
?
?xml
version="1.0"
encoding="utf-8"?
#80808FF0
#F8F8FF00
#FFFFFF
#938192
#7cd12e
#ff000000
#ff0000ff
#ff00ffff
#ff888888
#ff00ff00
#ffcccccc
#ffff00ff
#ffff0000
#00000000
#ffffff00
获得文本控件TextView,取名为tv。通过TextView的setTextColor方法进行文本颜色的设置,这里可以有3种方式进行设置。
tv.setTextColor(android.graphics.Color.RED)//系统自带的颜色类。
tv.setTextColor(0xffff00ff)//0xffff00ff是int类型的数据,分组一下0x|ff|ff00ff,0x
是代表颜色整数的标记,ff是表示透明度,ff00ff表示颜色,注意:这里ffff00ff必须是8个的颜色表示,不接受ff00ff这种6个的颜色表
示。
tv.setTextColor(this.getResources().getColor(R.color.red))//通过获得资源文件
进行设置。根据不同的情况R.color.red也可以是R.string.red或者R.drawable.red,当然前提是需要在相应的配置文件里
做相应的配置。
6
通过在Activity类中设置文本颜色,我们可以实现文本颜色的动态化。如果想保持文本颜色静态不变的话,可以直接通过上一篇中讲的通过直接配置即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)