Android之TextView设置String文本颜色

来源:互联网 发布:windows日志怎么看 编辑:程序博客网 时间:2024/06/06 04:30
每一次我们在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。
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(这个括号里面一定写所有的,如果其他的内容在括号外面就不显示了); 切记

第三种:
  1. textView=(TextView)findViewById(R.id.text_show);  
  2.        SpannableStringBuilder style = new SpannableStringBuilder("备注:签收人(张三)");  
  3.        style.setSpan(new ForegroundColorSpan(Color.BLUE), 03, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  4.        style.setSpan(new ForegroundColorSpan(Color.RED), 79, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  5.        textView.setText(style);  

是不是第三种感觉就比较高大上了,确实,第三种也是有点牛逼。推荐如果一行显示多个文字颜色的时候,建议用第二种和第三种,第三种更好!谢谢大家的观看



原创粉丝点击