1

更新

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


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

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

知道为什么会发生这种情况吗?我试过以编程方式设置重力,但这没有帮助。注释这一行会使文本回到居中。

伊姆古尔

伊姆古尔

4

1 回答 1

0

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

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

这样做是通过在文本上倾斜来伪造斜体。所以理论上它看起来不太好,但它解决了重力和其他布局属性不适用于真正的 Roboto Italic 的问题。

于 2015-04-01T03:54:36.690 回答