我需要在 XML 中更改我的应用程序的 Roboto 字体,并且我想在运行时更改 Roboto 字体。我怎么做?
问问题
684 次
1 回答
3
您为此使用资产文件。将您的字体转储到assets
文件中。
并相应地使用Typeface
类设置字体样式。
Typeface style = Typeface.createFromAsset(asm, "fonts/Roboto-Bold.ttf");
view.setTypeFace(style);
请注意,在这里,Roboto 字体保存在 assets 中的另一个目录 fonts 中。
为了更好地实践,您可以创建一个单独的类来扩展您需要的视图。除了包名称,您还可以访问在 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
于 2013-12-27T08:31:04.037 回答