给出在运行时创建的Button
:
Button button = Button(context)
设置自定义字体的方法是:
button.setTypeface(myTypeface)
但是我发现它仅在之前有效,我将其添加到ViewGroup
,而不是之后。
我也尝试过:
button.setTypeface(myTypeface, myStyle)
但是它也不起作用。我需要动态更改Button
字体。我已经尝试过invalidate()
和requestLayout()
,但是字体从未改变。
答案 0 :(得分:2)
解决方案:-您可以使用自定义字体对Button类进行子类化,并使用它代替按钮。
public class MyButton extends AppCompatButton {
public MyButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public MyButton(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public MyButton(Context context) {
super(context);
init();
}
private void init() {
if (!isInEditMode()) {
Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "font.ttf");
setTypeface(tf);
}
}
}