通过覆盖BlackBerry中的paint方法隐藏状态按钮

时间:2010-07-30 06:42:21

标签: blackberry

在MainScreen中需要有关绘画方法的帮助。使用上面的代码,我试图渲染一些列表。它工作正常。但它隐藏了我使用setStatus()方法添加的所有状态栏图标。当我删除绘制方法时,状态栏中的按钮会显示出来。我也尝试过使用setRe g.pushRegion(),但没有运气。

以下是示例代码:

private void addStatusBar(){
    manager = new HorizontalFieldManager();
    manager.add(new BitmapField(ImageUtility.loadBitMap("ask.jpg")));
    manager.add(new BitmapField(ImageUtility.loadBitMap("experts.jpg")));
    manager.add(new BitmapField(ImageUtility.loadBitMap("search.jpg")));
    manager.add(new BitmapField(ImageUtility.loadBitMap("my_profile.jpg")));
    manager.add(new BitmapField(ImageUtility.loadBitMap("groups.jpg")));
    manager.add(new BitmapField(ImageUtility.loadBitMap("analitics.jpg")));

    setStatus(manager);

}

protected void paint(Graphics graphics) {
    //graphics.pushRegion(new XYRect(0, 0, getPreferredWidth(), getPreferredHeight()));
    Bitmap image = ImageUtility.loadBitMap("header2.jpg");
    graphics.drawBitmap(0, 0, 500, image.getHeight(), image, 0, 0);

    for(int i =0; i < 5; i++ ){
        fieldList.drawListRow(fieldList, graphics, i, 50 + (i*50), 20);         
    }
}

3 个答案:

答案 0 :(得分:0)

您是否尝试将graphics.drawBitmap()调用的“y”偏移量设置为状态栏的高度?

答案 1 :(得分:0)

你需要调用super.paint否则状态永远不会被绘制。

答案 2 :(得分:0)

protected void paint(Graphics graphics) {
Bitmap image = ImageUtility.loadBitMap("header2.jpg");
graphics.drawBitmap(0, 0, 500, image.getHeight(), image, 0, 0);
for(int i =0; i < 5; i++ ){
    fieldList.drawListRow(fieldList, graphics, i, 50 + (i*50), 20);         
}     
super.paint(graphics); }