gpt4 book ai didi

Android:Textview 不能加粗/斜体

转载 作者:行者123 更新时间:2023-11-29 17:03:05 66 4
gpt4 key购买 nike

一个 TextView 在一个 Activity 中显示,用户转到另一个 Activity 以编辑文本的属性,例如颜色、大小、粗体、斜体和下划线。当用户选择将文本设为粗体、斜体或 bold_italic 时,它会起作用。如果用户取消选中该复选框,则 TextView 不会恢复正常。它可以在样式之间切换(即,如果我选中粗体,然后取消选中粗体并选中斜体,TextView 将是斜体,而不是粗体)但它不能有正常的字体。

我四处搜索,发现的所有内容都表明将 setTypeface 方法与 Typeface.NORMAL 一起使用应该有效,但它不起作用。

如果能帮我解决这个问题,我将不胜感激。相关代码如下。谢谢!

    TextView mDisplayMessage = (TextView) findViewById(R.id.message);
mDisplayMessage.setTypeface(mDisplayMessage.getTypeface(), Typeface.NORMAL);
//TODO: Cannot return all the way back to normal. Remains bold/italic/bold_italic
if (mIsBold && mIsItalic) mDisplayMessage.setTypeface(mDisplayMessage.getTypeface(), Typeface.BOLD_ITALIC);
else if (mIsBold) mDisplayMessage.setTypeface(mDisplayMessage.getTypeface(), Typeface.BOLD);
else if (mIsItalic) mDisplayMessage.setTypeface(mDisplayMessage.getTypeface(), Typeface.ITALIC);
else mDisplayMessage.setTypeface(mDisplayMessage.getTypeface(), Typeface.NORMAL);
if (mIsUnderlined) {
mDisplayMessage.setPaintFlags(mDisplayMessage.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
} else {
mDisplayMessage.setPaintFlags(0);
}

最佳答案

如果你不关心你可以使用的字体系列

mDisplayMessage.setTypeface(Typeface.DEFAULT);

因为 Typeface.DEFAULT 更改了字体系列(serif、sans-serif、monospace),但下面可以保持相同的字体系列但样式已更改。

Typeface typeface = mDisplayMessage.getTypeface();
int style = Typeface.NORMAL;
if(mIsBold && mIsItalic) {
style = Typeface.BOLD_ITALIC;
} else if(mIsBold) {
style = Typeface.BOLD;
} else if(mIsItalic) {
style = Typeface.ITALIC;
}
Typeface newTypeface = Typeface.create(typeface, style);
mDisplayMessage.setTypeface(newTypeface);

关于Android:Textview 不能加粗/斜体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42289611/

66 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com