Android TextView自定义排版会导致重力停止工作

时间:2015-03-20 23:41:31

标签: android roboto

更新

这似乎只发生在Roboto-Italic.ttf上。如果您遇到此问题,请尝试其他字体系列。


将字体集应用于TextView时,我遇到了一个奇怪的问题。应用名称“联系人”位于设置了android:gravity="center"的LinearLayout中,这使得它很好地居中,如下面的“之前”图片所示。当我设置字体时,它会导致重力因某种原因停止工作。这就是我设置字体的方式:

tvAppName.setTypeface(
  Typeface.createFromAsset(getActivity().getAssets(),"fonts/Roboto-Italic.ttf"));

知道为什么会这样吗?我已尝试以编程方式设置重力,但这没有帮助。注释这一行会导致文本回到中心位置。

之前

Imgur

Imgur

1 个答案:

答案 0 :(得分:0)

Google网站上的Roboto-Italic.ttf文件似乎在某种程度上被破坏或不兼容。解决方法是使用普通的Roboto字体,但将斜体指定为第二个参数

Typeface tf = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Roboto-Normal.ttf")); 
tvAppName.setTypeface(tf, Typeface.ITALIC);

这样做是通过对文本进行歪斜来伪造斜体。所以它理论上看起来不太好,但它解决了引力和其他布局属性不能与真正的Roboto Italic一起使用的问题。

相关问题