如何设置自定义字体重量?

时间:2011-02-17 12:35:10

标签: android fonts

就像主题暗示的那样,我想以编程方式为任意字体更改/设置font weight

编辑:我的意思是用于绘制字符串的字体。

感谢您的任何信息。

1 个答案:

答案 0 :(得分:8)

据我所知,加载字体后无法修改。您可以从现有的字体创建一个新的字体,如下所示:

Typeface typeface = Typeface.createFromAsset(getAssets(), "myfontfamily.otf");
Typeface boldTypeface = Typeface.create(typeface, Typeface.BOLD);

当然,这还取决于您的特定字体是否具有不同的权重。通常(总是?)这些将是单独的文件,例如,Bitstream Vera Sans有Vera.ttf,VeraBd.ttf,VeraIt.ttf,VeraBI.ttf,每个不同的姿势/体重组合各一个。只需根据您需要的重量加载正确的字体。

编辑:是的,字体通常是针对不同的权重重新绘制的,至少对于精心设计的字体而言。如果您只是在寻找类似人造粗体样式的东西(如Photoshop或Office适用于没有定义粗体样式的字体),您可以使用TextPaint类,并设置FAKE_BOLD_TEXT_FLAG标记以获得类似的结果。或者,您可以使用不同的笔触宽度来获得类似的效果。尽管如此,它仍然限于非常小的修改,特别是在小尺寸的情况下,或者你可能最终将文本与笔划相交,并且看起来很简单。 :)

我建议只玩假冒大胆的旗帜,看看情况如何,如果这是你想要完成的。