我正在构建一个小型Android应用程序,并希望整个应用程序和所有文本的字体无论在哪里成为Roboto,我无需更改它。到目前为止,我能找到关于这个避风港的答案对我有帮助。
我创建了一个资源文件夹和一个字体文件夹,但我不想一遍又一遍地将它导入到每个活动/文本视图中。
我有办法做到吗?
答案 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中的样式名称。
我最大的问题是我不知道要添加哪些文件。所以现在我明白了,我希望其他人也会觉得这很有用:)