【问题标题】:How to define style that use custom font如何定义使用自定义字体的样式
【发布时间】:2013-10-06 10:19:08
【问题描述】:

我想使用 Roboto 字体作为我应用中每个 TextViews、EditTexts、Buttons 等的默认字体。

我已将 ttf 文件放在 assets 文件夹内的 fonts 文件夹中。现在我想编辑应用程序样式,以使用该字体。 所以,这就是我所做的。

<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 为应用程序定义默认字体?在这种情况下,有什么问题? 提前谢谢你。

【问题讨论】:

    标签: android fonts


    【解决方案1】:

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

    可以做的是实现一个自定义TextView(加上自定义ButtonEditText从各自的类继承)读取自定义属性并加载该属性的字体文件指着。

    请记住,Roboto 旨在从 Honeycomb 开始使用(或者它是 ICS?)。它在旧设备上看起来确实有点不合适,其中 Droid Sans 是系统范围的默认设置。

    【讨论】:

    • 好的,谢谢。所以你建议保持默认字体正确吗?顺便说一句,它应该来自 ICS+。
    • 嗯,这取决于你的设计,真的。最好在应用程序内和框架内保持一致。另一方面,如果您要向后移植 Holo 风格的小部件,那么除了 Roboto 之外,这些小部件看起来很奇怪。这是一个判断电话,但我的经验法则是,“用户看到过这样的事情吗?”如果答案是否定的,我一定有一个非常非常好的理由这样做。
    • 嗨 Delyan,我已经按照您的建议创建了自定义文本视图和按钮,但是如果我从 xml 文件设置其 textStyle,这些自定义视图不会显示为粗体。我知道这个问题已经结束,但如果你能提出一些方法来实现这个
    • 附带说明:由于 gradle build 而不是 build/assets 文件夹,Android Studio 用户需要在 src/main 中创建一个 assests 文件夹。 stackoverflow.com/questions/18302603/…
    猜你喜欢
    • 2018-09-17
    • 1970-01-01
    • 2014-05-28
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    相关资源
    最近更新 更多