答案 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
标记以获得类似的结果。或者,您可以使用不同的笔触宽度来获得类似的效果。尽管如此,它仍然限于非常小的修改,特别是在小尺寸的情况下,或者你可能最终将文本与笔划相交,并且看起来很简单。 :)
我建议只玩假冒大胆的旗帜,看看情况如何,如果这是你想要完成的。