最近开发Android App,UI小姐姐验收的时候说,嗯,你这个字体没加粗呀
我说,好的,textStype="bold",然后屁颠屁颠的跑去给UI小姐姐看
结果UI小姐姐说,这个。。怎么这么粗,就是要那种中粗,ios都有的中粗体
嗯。。好吧,中粗,粗的不明显的那种粗,额,似曾相识呀,难道就是甲方爸爸提的那种五彩斑斓的黑?
然后百度呀,google呀,(当然google的英文看不懂,最后还是靠csdn)
最后找到的这篇文章Android中TextView字体加粗小技巧,那个兴奋呀,马上实验
嗯,去掉xml的bold,在代码中设置tv.getPaint().setFakeBoldText(true),运行,效果如图:
看看英文,诶!有戏,好像是瘦一点,再看看中文,emmmm,没区别呀,肉眼凡胎看不出来,拿去UI小姐姐看吧
结果发现中文是真的没区别,尴尬了哦,然后继续百度,google之后发现了这篇文章Android 字体粗细的设置
嗯。。。好像找到了改变世界的感觉,paint浓重出场,去掉xml的bold,去掉tv.getPaint().setFakeBoldText(true)
加上tv.getPaint().setStyle(Paint.Style.FILL_AND_STROKRE),tv.getPaint().setStrokeWidth(0.7),运行,效果如图
哦豁,完美,终于找到那种粗的不明显的粗了,UI小姐姐一看,嗯。。对,就是这种
心路历程:
中间还想过使用fontFamily,还真给我找到了和UI小姐姐使用的字体一样的一个样式 fontFailmy="sans-serif-medium",对应的是Roboto Medium,有点小惊喜
然后放上去运行,发现英文确实有那种中粗的感觉,但是中文和普通字体没区别,加个粗又太粗
灵光一现,我可不可以用细体加粗来拼出那种效果呢,然后使用fontFailmy="sans-serif-thin",对应的是Roboto Thin,然后加上textStyle="bold",运行,发现和上面的结果一样,英文确实挺符合效果,但是中文还是普通加粗字体
第二天找到了tv.getPaint().setFakeBoldText(true),结果还是失败告终
最终功夫不负有心人,终于找到了方法,tv.getPaint().setStyle(Paint.Style.FILL_AND_STROKRE),tv.getPaint().setStrokeWidth(0.7),然后就可以了,接下来UI小姐姐要多粗我都可以做到了,改一下小数嘛,多大点事儿