这似乎只发生在Roboto-Italic.ttf上。如果您遇到此问题,请尝试其他字体系列。
将字体集应用于TextView时,我遇到了一个奇怪的问题。应用名称“联系人”位于设置了android:gravity="center"
的LinearLayout中,这使得它很好地居中,如下面的“之前”图片所示。当我设置字体时,它会导致重力因某种原因停止工作。这就是我设置字体的方式:
tvAppName.setTypeface(
Typeface.createFromAsset(getActivity().getAssets(),"fonts/Roboto-Italic.ttf"));
知道为什么会这样吗?我已尝试以编程方式设置重力,但这没有帮助。注释这一行会导致文本回到中心位置。
答案 0 :(得分:0)
Google网站上的Roboto-Italic.ttf文件似乎在某种程度上被破坏或不兼容。解决方法是使用普通的Roboto字体,但将斜体指定为第二个参数:
Typeface tf = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Roboto-Normal.ttf"));
tvAppName.setTypeface(tf, Typeface.ITALIC);
这样做是通过对文本进行歪斜来伪造斜体。所以它理论上看起来不太好,但它解决了引力和其他布局属性不能与真正的Roboto Italic一起使用的问题。