我需要在XML中更改我的应用的Roboto字体,我想在RunTime更改Roboto字体。我该怎么做?
答案 0 :(得分:3)
您可以使用资产文件。转储assets
文件中的字体。
并相应地使用Typeface
类设置字体样式。
Typeface style = Typeface.createFromAsset(asm, "fonts/Roboto-Bold.ttf");
view.setTypeFace(style);
请注意,此处,Roboto字体保存在资产内的另一个目录字体中。
为了更好的练习,您可以创建一个单独的类来扩展您需要的视图。除了包名称,您还可以在xml布局中访问创建的视图。
public class BoldTextView extends TextView{
public BoldTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public BoldTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public BoldTextView(Context context) {
super(context);
init();
}
private void init() {
Typeface tf = Typeface.createFromAsset(getContext().getAssets(),
"fonts/Roboto-Bold.ttf");
setTypeface(tf);
}
}
布局中对此类的引用:
com.your.packagename.BoldTextView