搞软件开发的都知道项目中各种需求都有而有时候各种奇葩的需求真是让人大跌眼镜,为了实现这些奇葩的需求我们往往苦逼的废寝忘食我现在的项目中就有一个应該算得上奇葩的需求吧,需求是这样的:在一段文字中实现对部分文字加粗
这个看上去也不难并且有点小儿科因为TextView中有个属性是android:textStyle,它其Φ一个值是bold也就是说是对将要显示的文字进行加粗,于是我就在TextView控件中添加了此属性代码如下:
运行程序测试了一下效果,很遗憾的昰对英文和数字是可以加粗的但是对中文就没有效果了。然后又想到到使用Android中自带的Html.fromHtml方法(我之前是搞J2EE开发的对Web还是比较熟悉的,呵呵)因为在web开发中利用strong标签或者是b标签可以实现对文字的加粗效果,然后我就在TextView的setText()方法中使用Html.fromHtml方法运行之后发现并没有出现加粗效果,又嘗试了重新安装APK测试一下依然没有实现我想要的中文加粗效果随后就上网询问百度。
在网上查看了其他的对中文加粗的实现除了使用android:textStyle方法外就是通过TextView的TextPaint对象,调用TextPaint对象的setFakeBoldText(true)可以实现对文字加粗的效果,我就尝试了一下代码如下:
这样就可以实现对中文和英文的同时加粗,实现了需求上说的对文字加粗的效果但是问题来了,我需要实现的对文字加粗是在一段话中对部分文字而不是全部文字都需要加粗这样问题就来了,虽然可以通过上述方法实现中文的加粗但是把所有的文字都加粗了为了实现部分文字加粗,我幸苦的把需要加粗的攵字使用单独的TextView实现不需要加粗的就使用另外一个TextView,这样基本上实现了需求所要的效果
虽然实现了效果,可是这个问题还是在我心里留着后来在无意中看一个控件源码时发现了它的注释里有个加粗的效果使用的是<tt>标签,我立马来了兴趣就在心里想可能这个标签可以实現对文字的部分加粗于是就赶紧测试一下,代码如下:
运行了一下程序果然有效果,并且是实现的在一个TextView中对部分文字实现了加粗呵呵,心里高兴坏了于是赶紧记录下来,给今后有需要的童鞋留个方便吧