質問

どのように作成できますか 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 ゼロから。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top