我已经完成了一个通过视图运行并更改字体的功能。问题是,为了避免虚假的粗体和斜体位,我以这种方式设置粗体字体(斜体也是一样的):e.setTypeface(Constants.fontBold, Typeface.NORMAL);
在测试之后e.getTypeface().getStyle()
所以如果我这样做两次(出于一个模糊的原因),字体将是正常的而不是粗体。在我的应用程序中出现这种可能性我很糟糕。因此,如果有人知道如何禁用假粗体和斜体,我将不胜感激!
public static boolean recursiveFontSetting(View v) {
if (v instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) v).getChildCount(); i++)
recursiveFontSetting(((ViewGroup) v).getChildAt(i));
return true;
} else if (v instanceof TextView) {
TextView e = (TextView) v;
if (e.getTypeface() != null
&& e.getTypeface().getStyle() == Typeface.BOLD) {
e.setTypeface(Constants.fontBold, Typeface.NORMAL);
} else {
e.setTypeface(Constants.font);
}
return true;
} else if (v instanceof Button) {
Button e = (Button) v;
if (e.getTypeface() != null
&& e.getTypeface().getStyle() == Typeface.BOLD)
e.setTypeface(Constants.fontBold, Typeface.NORMAL);
else
e.setTypeface(Constants.font);
return true;
}
return false;
}
谢谢 !