Мультиформат в LabelField - BlackBerry

Я помещаю текст в 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
        }

Я хочу другой шрифт (размер, стиль и т. Д.) Для каждой строки. Можно ли иметь мультиформат в одном поле лейбла. Пожалуйста помоги.

1 ответ

Вы не можете сделать это с LabelField только с RichTextField, Вы должны создать массивы смещений, шрифтов и индексов шрифтов для использования в поле. Это немного утомительно, но не особенно сложно. Метод, который вы хотите использовать

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

где:

  • offsets отсортированный массив позиций, в которых изменяется форматирование, включая начало (0) и конец (text.length()) текста;
  • attributes это массив индексов в fonts массив, один для каждой текстовой области (offsets.length == attributes.length + 1);
  • а также fonts массив различных шрифтов, которые вы хотите использовать.

attributes массив может содержать одно и то же значение более одного раза, поэтому fonts.length может быть что угодно, пока каждый элемент attributes действительный индекс не null элемент fonts,

Другие вопросы по тегам