多色のテキストを備えたrichtextedit?
-
02-10-2019 - |
質問
どのように作成できますか RichTextEdit
複数の色のテキストを含むRIM 4.5 APIを使用しますか?
たとえば、aを作成したい 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