每一次我们在textview布局的时候,当遇到多个文字颜色的时候,会变得很麻烦,这时候是需要一个textview,设置一个textcolor 还是有其他更好的办法呢?下面我们来看看有几种能设置textview 颜色:
第一种: 我们可以在xml 文件中 在
android:textColor="@color/login_submit" />进行设置颜色,也可以通过代码 把控件findviewByid 出来后,然后再settextcolor() 进去。
1
mBtnDownAndOpen.setTextColor(mContext.getResources().getColorStateList(R.color.networkdata_btn_open_txtcolor_selector));
通过代码设置颜色,但是这种已经过时,还有两种通过代码设置。小编知道,
2.
title.setTextColor(Color.parseColor("#ff0000"));自己认为这种是很暴力的方式
3。
这一种动态设置代码相当于取代了第一种动态设置string 颜色,当看见画横线就说明这个方法属于过时了,嘎嘎
title.setTextColor(ContextCompat.getColor(this,R.color.notice_color));
这一种动态设置代码相当于取代了第一种动态设置string 颜色,当看见画横线就说明这个方法属于过时了,嘎嘎
4.tv.setTextColor(android.graphics.Color.RED) ;这一种是很老的一种,我见过老的程序员写过,调用系统自带的,局限性太大
5.tv.setTextColor(0xffff00ff); 我只能说这一种也很老,这就属于十进制了,原理不解析,请看书籍
第二种: 上面我们讲的第一大种类,说白其实就是单个textview 设置颜色的时候,但是当我们项目中,发现一行有多个文字颜色是不同的时候,这个时候怎么办,其实一个textview就搞定了,不需要自定义textview,除非你工作两年以上了,下main我们看如何实现
主要是通过htm这个东西,textview 能识别html 这个类。
title.setText(Html.fromHtml("假如生命只有一次,"+"<font color='red'>我想要娶了你,</font>"+"<font color='black'>可不可以</font>",0));这样就办了,一个textvew 就行了,但是这里就得需要settext(),还有很多人写的时候,发现出不来,那是因为这个坑是HTML.fronHtml(这个括号里面一定写所有的,如果其他的内容在括号外面就不显示了); 切记
第三种:
- textView=(TextView)findViewById(R.id.text_show);
- SpannableStringBuilder style = new SpannableStringBuilder("备注:签收人(张三)");
- style.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- style.setSpan(new ForegroundColorSpan(Color.RED), 7, 9, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- textView.setText(style);
是不是第三种感觉就比较高大上了,确实,第三种也是有点牛逼。推荐如果一行显示多个文字颜色的时候,建议用第二种和第三种,第三种更好!谢谢大家的观看