J2ME 無獨立 Color 類別,採用 RGB 整數編碼表示顏色。本文說明 RGB 概念、常見顏色編碼、Graphics 顏色操作方法與實務技巧。
顏色由紅 (R)、綠 (G)、藍 (B) 三原色疊加,每通道 0~255(8 位元)。兩種表示方式:
(R, G, B) 例:(255, 0, 0) 為紅色0x00RRGGBB(高位元組保留為 0x00)0x00FF0000、綠色 0x0000FF00、藍色 0x000000FF、白色 0x00FFFFFF修正:原文藍色範例(255,255,255)/0x00FFFFFF實為白色。正確藍色為(0,0,255)/0x000000FF。
| 方法 | 說明 | 範例 |
|---|---|---|
getColor() |
取得目前繪圖顏色,回傳 0x00RRGGBB 整數 |
int c = g.getColor(); |
setColor(int RGB) |
以十六進制整數設定顏色 | g.setColor(0x00FF0000); // 紅色 |
setColor(int r, int g, int b) |
以三通道值設定顏色(各 0~255) | g.setColor(0, 255, 0); // 綠色 |
protected void paint(Graphics g) {
// 保存原顏色
int oldColor = g.getColor();
// 繪製紅色邊框
g.setColor(0x00FF0000);
g.drawRect(10, 10, 50, 30);
// 繪製半透明綠色填充(需裝置支援 alpha,CLDC 1.1+)
// g.setColor(0x8000FF00); // 非標準,視實作而定
// 復原顏色
g.setColor(oldColor);
}
Colors 工具類集中管理,便於主題切換drawLine() 模擬漸層gray = (R*30 + G*59 + B*11) / 100(近似人眼亮度感知)Display.numColors() 或 Display.isColor() 檢測,單色螢幕自動轉灰階