带有彩色文本的RichTextedit?
-
02-10-2019 - |
题
我如何创建一个 RichTextEdit
使用RIM 4.5 API,其中包含具有多种颜色的文本?
例如,我想创建一个 RichTextEdit
如下:
- 文字是 “你好BB世界”
- “你好” 应该 蓝色的
- “ BB世界” 应该 红色的
- “ BB” 应该
ITALIC
- “你好” 应该
BOLD
主要问题是获得颜色,而不是大胆和斜体。
我尝试过覆盖 RichTextEdit.paint
功能,但是这将整个字符串的颜色格式化,而不仅仅是它的子字符串!
这是我实施的代码,以使文本粗体和斜体和覆盖油漆更改整个字符串颜色:
public final class RichTextFieldSample extends UiApplication
{
public static void main(String[] args)
{
RichTextFieldSample theApp = new RichTextFieldSample();
theApp.enterEventDispatcher();
}
public RichTextFieldSample()
{
String richText = "This is how you create text with formatting!!!";
Font fonts[] = new Font[3];
int[] offset = new int[4];
byte[] attribute = new byte[3];
fonts[0] = Font.getDefault();
fonts[1] = Font.getDefault().derive(Font.BOLD);
fonts[2] = Font.getDefault().derive(Font.BOLD | Font.ITALIC);
offset[0] = 0;
attribute[0] = 2;
offset[1] = 4;
attribute[1] = 0;
offset[2] = 33;
attribute[2] = 1;
offset[3] = richText.length();
RichTextField rtField = new RichTextField
(richText, offset, attribute, fonts,
RichTextField.USE_TEXT_WIDTH) {
protected void paint(Graphics graphics) {
graphics.clear();
graphics.setColor(0x0000FF);
super.paint(graphics);
}
};
MainScreen mainScreen = new MainScreen();
mainScreen.setTitle(new LabelField
("RichTextFieldSample Sample",
LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH));
mainScreen.add(rtField);
pushScreen(mainScreen);
}
}
解决方案
不幸的是,对此没有简单的回答。根据 这个帖子, ,Richtextfield不支持多种颜色(尽管存在 getForegroundColors
方法)。
可能会扩展RichTextfield以支持多种颜色,但是有了必要的工作量,很可能会更容易实施自己的 Field
从头开始。
不隶属于 StackOverflow