2013-10-06 57 views
0

我想使用Roboto字体作为我应用中每个TextViews,EditTexts,Buttons等的默认字体。如何定义使用自定义字体的样式

我已经把ttf文件放在资产文件夹里的字体文件夹中。现在我想编辑应用程序样式,以便使用该字体。 所以,这就是我所做的。

<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:typeface">ROBOTO-REGULAR.TTF</item> 
</style> 

但编译器返回这个错误。

String types not allowed (at 'android:typeface' with value 'ROBOTO- 
REGULAR.TTF'). 

是否可以通过XML定义应用程序的默认字体?在这种情况下,什么是错的? 预先感谢您。

+0

这可能有助于http://www.gadgetsaint.com/android/custom-fonts-textview-edittext-android/#.WNive2996Hs – ASP

回答

4

你不能按照你想要的方式去做。 android:typeface属性是枚举并具有固定数量的值。它不需要文件名。

什么你可以要做的就是实现一个自定义TextView(加上从它们各自的类定制ButtonEditText继承)读取自定义属性,并加载字体文件的属性点。

请记住,Roboto是用来从Honeycomb开始使用的(或者是ICS?)。它在旧设备上看起来有些不合适,Droid Sans是系统级的默认设备。

+0

谢谢。所以你建议保持默认字体正确?顺便说一句,它应该来自ICS +。 –

+1

嗯,真的取决于你的设计。最好在应用程序和框架中保持一致。另一方面,如果您正在支持全息风格的小工具,那些与Roboto以外的其他任何东西都很奇怪。这是一个判断的呼声,但我的经验法则是,'用户看到过这样的事情吗?'如果答案是否定的,我必须有一个很好的理由去做。 – Delyan

+0

嗨Delyan,我建立了自定义的textview和按钮,因为你建议,但这些自定义视图不显示为粗体,如果我从xml文件设置其textStyle。我知道这个问题已关闭,但仍然如果你可以建议某种方式来实现这个 – silwar