LabelField中的多格式 - BlackBerry

时间:2012-08-05 05:14:06

标签: blackberry labelfield

我将文本放在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
        }

我想要每行不同的字体(大小,样式等)。是否可以在一个labelfield中使用多格式。请帮忙。

1 个答案:

答案 0 :(得分:2)

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

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

其中:

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

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