在 J2ME 開發中,為減小應用體積,常將多張小圖合併成單一圖檔(圖集),執行時僅繪製所需區域。Graphics.setClip() 正是實現此功能的核心方法。
setClip 在螢幕上建立一個「可視窗口」,只有落在該矩形區域內的繪圖內容才會顯示,其餘部分被裁切隱藏。這類似於透過一個剪開的洞僅看圖片的特定部分。
public void setClip(int x, int y, int width, int height)
| 參數 | 說明 |
|---|---|
x | 可顯示矩形區域左上角 X 座標 |
y | 可顯示矩形區域左上角 Y 座標 |
width | 矩形寬度 |
height | 矩形高度 |
g.setClip(10, 20, 20, 30);
g.drawImage(image, 10, 20, Graphics.LEFT | Graphics.TOP);
上述程式碼將只顯示 image 從座標 (10,20) 起、寬 20、高 30 像素的區域,其餘部分不繪製。
使用 setClip 後,必須恢復預設裁切區域(全螢幕),否則後續繪圖將受限:
g.setClip(0, 0, this.getWidth(), this.getHeight());
此呼叫將裁切區域重設為整個螢幕範圍,確保後續繪圖正常。