如何在Blackberry中将字体设置为LabelField文本?
我不知道如何将字体样式应用于如何在Blackberry中将字体设置为LabelField文本?,blackberry,Blackberry,我不知道如何将字体样式应用于LabelField中的Blackberry中的LabelField中的文本。下面是一篇文章,其中有一个ResponseLabelField扩展了LabelField,并展示了如何设置字体: 下面是一个快速代码片段: LabelField displayLabel = new LabelField("Test", LabelField.FOCUSABLE) { protected void paintBackground(net.ri
LabelField
中的Blackberry
中的LabelField中的文本。下面是一篇文章,其中有一个ResponseLabelField扩展了LabelField,并展示了如何设置字体:
下面是一个快速代码片段:
LabelField displayLabel = new LabelField("Test", LabelField.FOCUSABLE)
{
protected void paintBackground(net.rim.device.api.ui.Graphics g)
{
g.clear();
g.getColor();
g.setColor(Color.CYAN);
g.fillRect(0, 0, Display.getWidth(), Display.getHeight());
g.setColor(Color.BLUE);
}
};
FontFamily fontFamily[] = FontFamily.getFontFamilies();
Font font = fontFamily[1].getFont(FontFamily.CBTF_FONT, 8);
displayLabel.setFont(font);
如果我错了,有人会纠正我,但我相信通过在fontfamine
数组中使用不同的索引可以选择不同的字体
编辑:这里有一个测试应用程序,你可以用来在字体之间切换:你可以使用LabelField.setFont。如果没有在label字段上明确执行此操作,则该字段将使用其管理器使用的任何字体(依此类推)
有几种方法可以获得字体。一种是从现有字体派生一种字体(在本例中,我得到的是默认字体的粗体版本):
另一种方法是获得一个特定的字体系列,并从中派生出一种字体(这里是一种12磅的斜体字体):
有几件事需要注意:我使用了单位pt(点)而不是单位px(像素)。一般来说,这是一个好主意,因为黑莓手机的屏幕大小和分辨率(DPI)差别很大,使用点可以让你在不同的设备上看到更一致的外观,而不是让你的文本在粗体或8900上看起来很小(或在曲线或珍珠上看起来很大)
同样在第二个示例中,forName可以抛出一个必须捕获的ClassCastException(这是一个已检查的异常),但根据Javadocs,它实际上从未抛出过,如果指定一个未知的名称,它将返回到另一个字体系列
LabelField labelField = new LabelField("Hello World");
Font myFont = Font.getDefault().derive(Font.BOLD, 9, Ui.UNITS_pt);
labelField.setFont(myFont);
LabelField labelField = new LabelField("Hello World");
FontFamily fontFamily = FontFamily.forName("BBCasual");
Font myFont = fontFamily.derive(Font.ITALIC, 12, Ui.UNITS_pt);
labelField.setFont(myFont);