我的应用中有一个textview和两个微调器。一个微调器选择Typeface(默认/ Serif / Monospace)。另一个微调器选择字体样式(Normal / Bold / Italic / Bold Italic)。
这是我的代码:
tvQuoteTextSample = (TextView)findViewById(R.id.preview_QuoteText);
从字体微调器设置字体:
switch(selectedTypeFace)
{
case "Serif":
tvQuoteTextSample.setTypeface(Typeface.SERIF);
break;
case "Monospace":
tvQuoteTextSample.setTypeface(Typeface.MONOSPACE);
break;
default:
tvQuoteTextSample.setTypeface(Typeface.DEFAULT);
break;
}
从fontstyle spinner设置fontStyle:
switch (fontStyle) {
case "Bold":
tvQuoteTextSample.setTypeface(null, Typeface.BOLD);
break;
case "Italic":
tvQuoteTextSample.setTypeface(null, Typeface.ITALIC);
break;
case "Bold Italic":
tvQuoteTextSample.setTypeface(null, Typeface.BOLD_ITALIC);
break;
default:
tvQuoteTextSample.setTypeface(null, Typeface.NORMAL);
break;
}
当我应用fontStyle微调器时,应用的TypeFace重置为Default。类似地,当我应用TypeFace时,fontStyle重置为Normal。
我希望两个微调器一起工作。即,一个微调器的输出将应用于textView而不重置先前的样式。如何实现这个目标?
答案 0 :(得分:0)
在更改样式时,似乎通过提供TypeFace
参数来重置null
。
相反,请保持当前TypeFace
并仅更改样式:
tvQuoteTextSample.setTypeface(tvQuoteTextSample.getTypeFace(), Typeface.BOLD);