在Android Studio中为我的应用设置Roboto为我的全局字体

时间:2015-05-14 13:59:34

标签: android-studio

我正在构建一个小型Android应用程序,并希望整个应用程序和所有文本的字体无论在哪里成为Roboto,我无需更改它。到目前为止,我能找到关于这个避风港的答案对我有帮助。

我创建了一个资源文件夹和一个字体文件夹,但我不想一遍又一遍地将它导入到每个活动/文本视图中。

我有办法做到吗?

2 个答案:

答案 0 :(得分:2)

答案是肯定的。

全球Roboto指示TextView和Buttonclasses。

<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:textViewStyle">@style/RobotoTextViewStyle</item> 
    <item name="android:buttonStyle">@style/RobotoButtonStyle</item> 
</style> 

<style name="RobotoTextViewStyle" parent="android:Widget.TextView"> 
    <item name="android:fontFamily">sans-serif-light</item> 
</style> 

<style name="RobotoButtonStyle" parent="android:Widget.Holo.Button"> 
    <item name="android:fontFamily">sans-serif-light</item> 
</style>

只需从列表themes.xml中选择所需的样式,然后根据原始样式创建自定义样式。最后将样式应用为应用程序的主题。

<application android:theme="@style/AppTheme" > </application>

它只适用于像Roboto这样的内置字体,但这就是问题所在。对于自定义字体(例如从资源加载),此方法将无效。

您可以在XML文件中使用此文本视图类。看看这个帖子 https://stackoverflow.com/a/16406494/1841777

答案 1 :(得分:1)

好的,我找到了问题的答案以及我之前没有理解答案的原因。

1。)您要修改的文件是全局styles.xml,位于: 主&GT; RES&GT;值&GT; style.xml

如果您已在主要活动的设计窗口中为您的应用选择了主题,则该文件已包含:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
        <!-- Customize your theme here. -->

</resources>

正如评论所说,您可以自定义您的应用。

添加你想要的风格,就像tomrozb的回答所示: https://stackoverflow.com/a/16407123/3910425

然后将主题添加到AndroidManifest.xml中,如果它还没有。

<application android:theme="@style/AppTheme" >

AppTheme部分对应于styles.xml中的样式名称。

我最大的问题是我不知道要添加哪些文件。所以现在我明白了,我希望其他人也会觉得这很有用:)