就像主题暗示的那样,我想以编程方式更改/设置任意字体的font weight.
编辑:我的意思是一般用于绘制字符串的字体.
谢谢你的任何信息.
解决方法:
据我所知,加载字体后无法修改.您可以从现有字体创建新的字体,如下所示:
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标志以获得类似的结果.或者,您可以使用不同的笔触宽度来获得类似的效果.尽管如此,它仍然限于非常小的修改,特别是在小尺寸的情况下,或者你可能最终将文本与笔划相交,并且看起来很简单.
标签:android,fonts
来源: https://codeday.me/bug/0726/1544051.html