飞道的博客

Android字体加粗,UI小姐姐说太粗了,解决办法

837人阅读  评论(0)

最近开发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小姐姐要多粗我都可以做到了,改一下小数嘛,多大点事儿


转载:https://blog.csdn.net/sese12138/article/details/109805827
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场