Ant*_*izk 21
您可以使用LabelField.setFont.如果您未在标签字段上明确执行此操作,则该字段将使用其管理器使用的任何字体(依此类推向上).
有两种方法可以获得字体.一种是从现有字体派生一个(在这种情况下,我得到一个默认字体的粗体版本):
LabelField labelField = new LabelField("Hello World");
Font myFont = Font.getDefault().derive(Font.BOLD, 9, Ui.UNITS_pt);
labelField.setFont(myFont);
Run Code Online (Sandbox Code Playgroud)
另一种是获取特定的字体系列并从中派生出一种字体(这里得到一个12磅的斜体字体):
LabelField labelField = new LabelField("Hello World");
FontFamily fontFamily = FontFamily.forName("BBCasual");
Font myFont = fontFamily.derive(Font.ITALIC, 12, Ui.UNITS_pt);
labelField.setFont(myFont);
Run Code Online (Sandbox Code Playgroud)
有几点需要注意:我使用了UNITS_pt(点)而不是UNITS_px(像素).这是一个好主意,因为黑莓设备的屏幕尺寸和分辨率(DPI)变化很大,并且使用积分可以让您在设备上看起来更加一致,而不是让您的文字在Bold或8900上看起来很小(或者说很大曲线或珍珠).
同样在第二个例子中,forName可以抛出一个你必须捕获的ClassCastException(它是一个已检查的异常)但是根据Javadocs实际上从未抛出,如果你指定一个未知的名字,它将回退到另一个字体系列.
这是一篇帖子,其中有一个ResponseLabelField,它扩展了LabelField并显示了如何设置字体:http://supportforums.blackberry.com/rim/board/message? board.id = java_dev&thread.id = 37988
这是一个快速的代码片段:
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);
Run Code Online (Sandbox Code Playgroud)
如果我错了,有人会纠正我,但我相信通过在fontFamily数组中使用不同的索引来选择不同的字体.
编辑:这是一个测试应用程序,您可以用来切换字体:http://blackberry-digger.blogspot.com/2009/04/how-to-change-fonts-in-blackberry.html
| 归档时间: |
|
| 查看次数: |
17930 次 |
| 最近记录: |