Android TextView 部分字体设置颜色或大小
在某些情况下,会遇到某些关键字需要高亮显示,可Android自带的TextView支持很困难。
背景来自:今天一同学问我怎么实现,给他举例两种方式,他感觉不方便,因此我才写此文章,简单介绍下。
支持方式一
可以通过HTML的方式,因为TextView可以加载HTML,因此可以简单的实现,缺点是和Android自带的字体看起来有点别扭。
1 | textView4.setText(Html.fromHtml("北京市发布霾黄色预警,<font color='#ff0000'><small><small>外出携带好</small></small></font>口罩")); |
支持方式二
可以通过代码的方式,对TextView设置部分字体的颜色。
1 | Spannable span = new SpannableString(textView3.getText()); |
以上两种方式,我感觉就可以了,不过有些同学感觉就是用起来比较麻烦,因此我们可以封装下第二种方法,变为第三种方法,也就是我要写的。
支持方式三
通过自定义View的方式来封装这些代码。
首先是CTextView extends TextView,当然名称无所谓,自己喜欢就好
1 | public class CTextView extends TextView { |
定义上面类中用到的attrs.xml
1 |
|
在xml中的TextView的用法
1 | <LinearLayout |
在Activity中的用法
1 | CTextView cTextView = (CTextView) findViewById(R.id.c_textview); |