将TextView字体设置为粗体和serif分别重置

时间:2015-03-11 18:48:08

标签: android

我的应用中有一个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而不重置先前的样式。如何实现这个目标?

1 个答案:

答案 0 :(得分:0)

在更改样式时,似乎通过提供TypeFace参数来重置null

相反,请保持当前TypeFace并仅更改样式:

tvQuoteTextSample.setTypeface(tvQuoteTextSample.getTypeFace(), Typeface.BOLD);