2012-03-08 168 views
1

我正在開發我的第一個黑莓應用程序,並且我想將背景更改爲黑色和所有文本(在BasicEditField標籤中,Label s等)白色。如何讓黑莓背景變黑?

我嘗試在VerticalFieldManager上使用setBackground(Background bg)方法,但它只是將屏幕變黑,就我的組件而言。也就是說,如果我有只有兩個按鈕一個在另一個下面,背景只有黑色,直到按鈕的結束。所以當屏幕上的組件較少​​時,屏幕會變成黑色半白色。

有什麼辦法,我可以實現我想要的行爲:

  • 整個畫面應該是
  • 所有的文本標籤應該是白色

任何幫助非常感謝!

回答

4

此代碼將設置你的背景爲黑色,EditField中爲白色

VerticalFieldManager backg = new VerticalFieldManager(Field.USE_ALL_WIDTH | Field.USE_ALL_HEIGHT){ 
public void paint(Graphics graphics) { 
graphics.setBackgroundColor(Color.BLACK); 
graphics.clear(); 
super.paint(graphics); 
    } 
}; 

現在添加EditField中爲

EditField edit= new EditField("", "", 100, Field.FOCUSABLE){ 
protected void paintBackground(Graphics g) { 
      g.setBackgroundColor(Color.WHITE); 
      g.clear(); 
     } 



backg.add(edit); 
add(backg); 

使用g.setColor(Color.WHITE);改變字體顏色。

+0

真的有幫助!非常感謝! – Roshnal 2012-03-08 14:35:17

+0

然後接受答案.... – Signare 2012-03-09 04:22:35

+0

g.setColor(Color.WHITE);會將字體顏色更改爲白色。 – Signare 2012-03-09 06:43:20

2

Signare的版本適用於舊版本,但是OS 4.6還有另一種選擇。查看net.rim.device.api.ui.decor包中的課程。

我用這個來改變屏幕的背景對我的計劃之一:

public class MyScreen extends MainScreen { 

    MyScreen() { 

     Background screenColor = BackgroundFactory.createSolidBackground(Color.Black); 
     Manager backg= getMainManager(); 
     backg.setBackground(screenColor); 

     EditField edit = new EditField("", "", 100, Field.FOCUSABLE){ 
      protected void paint(Graphics g) { 
       g.setColor(Color.WHITE); 
       super.paint(g); 
      } 
     }; 
     Background fieldColor = BackgroundFactory.createSolidBackground(Color.BLACK); 
     edit.setBackground(fieldColor); 

     backg.add(edit); 
    } 
} 

你的所有領域都.setBackround().setBorder()方法,讓您做一些自定義不錯。我發現這種方法比僅僅爲了改變背景顏色而繼承我的所有組件更簡單。不幸的是,你仍然需要改變文字顏色EditFieldLabelField

+0

是的,這種方法更容易和整潔。我正在開發BlackBerry OS 6.0+,所以它不應該是一個問題。非常感謝您的回答! – Roshnal 2012-03-08 16:39:06

+1

但任何想法如何將'EditField'的文本顏色設置爲** White **? – Roshnal 2012-03-08 16:40:03

+0

我昨天正在搜索,除了子類化字段外,我找不到任何其他方法,我編輯了我的響應以包含更新後的代碼。 – 2012-03-09 14:25:39