Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Blackberry中将字体设置为LabelField文本?_Blackberry - Fatal编程技术网

如何在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);