1

我将文本作为多行放置在 LabelField 中。这是我正在调用的方法:

public void setFirstName(String fvalue,String lvalue,String date,String lastStatus) 
        {
            _fnameLabel.setText(fvalue+" "+lvalue+"\n"+date+"\n"+lastStatus);
            _fnameLabel.setFont((_fnameLabel.getFont().derive(Font.BOLD, 20, Ui.UNITS_px,
                    Font.ANTIALIAS_STANDARD, Font.COLORED_OUTLINE_EFFECT)));
            _fnameLabel.setMargin(10, 0, 20, 0); //To leave some space from top and bottom
        }

我想要每行不同的字体(大小、样式等)。是否可以在一个标签字段中具有多种格式。请帮忙。

4

1 回答 1

2

你不能用 a 做到这一点LabelField,只能用 a RichTextField。您必须构建用于该字段的偏移量、字体和字体索引数组。这有点乏味,但不是特别难。您要使用的方法是

setText(String text, int[] offsets, byte[] attributes, Font[] fonts)

在哪里:

  • offsets是格式更改位置的排序数组,包括text.length()文本的开始 (0) 和结束 ();
  • attributes是数组中的索引fonts数组,每个文本区域都有一个索引 ( offsets.length == attributes.length + 1);
  • 并且fonts是您要使用的不同字体的数组。

attributes数组可以多次包含相同的值,因此可以fonts.length是任何值,只要 的每个元素attributes都是 的非null元素的有效索引fonts

于 2012-08-05T05:38:08.613 回答