您好我想为整个Android应用程序设置相同的字体系列。我已经看到了这个Is it possible to set a custom font for entire of application?,但这一切都在使用代码。我想在Theme
中设置它以便它可以在所有方面工作。它还应该转换ActionBar
文本的字体系列。
有什么办法吗?
styles.xml
<resources>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
</resources>
答案 0 :(得分:1)
如果你想为你的所有视图设置TypeFace而不必每次都以编程方式设置它(并且仍然适用于所有版本的Android),你最好的选择是将View子类化并让它自动设置TypeFace你想要的。
IE。
public class CustomTextView extends TextView{
public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomTextView(Context context) {
super(context);
init();
}
public void init(boolean bold) {
setTypeface(Typeface.createFromAsset(getAssets(), "fonts/your_font_file.ttf"));
}
}
如果你想进一步优化它,你可以使用对该TypeFace的静态引用并使用它,这样你就不需要在每次加载视图时重新创建TypeFace。