Мультиформат в 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
,