九
MIDP低級圖形處理
MIDP所提供的圖形處理方法都在javax.microedition.lcdui裡面。主要是如下幾個類:Display,Graphic
s,Canvas,Font,Image。
1、Display:
在每個MIDlet之中是由一個Display,屬於用Singleton
Pattern所封裝起來的類別,需要使用getDisplay來取得。當使用setCurrent()方法,並同時將一個Dis
playable的子類作為參數就可以在屏幕上顯示相關的畫面。也可一用getCurrent()獲取當前正在作用的
Displayable的對象。同時為了取得屏幕相關的屬性可以使用isColor()返回屏幕是否為彩色,numColors(
)返回屏幕所支持的彩色數,如果返回值為2則為黑白兩色。每當Display的setCurrent方法得到Canvas子
類作為參數的時候,MIDP系統會執行paint方法並將Graphics對象當作參數。裡面有一點需要注意,由於
手持設備的屏幕大小並不是固定的,所以我們在填充背景色,前景色的時候有必要通過getWidth(),getHe
ight()兩個方法取得屏幕的長、寬。
2、Image:
處理圖形的時候會使用到Image類,根據Image類的產生方式可以分為可修改和不可修改的兩個方面。
可以通過isMutable方法得到此Image類是否可以修改。還可以通過getWidth(),getHeight()方法取得Imag
e對象的長,寬。
可以通過讀取圖像文件,網絡下載,resource bundle等方式創建一個不可修改的image對象。一旦創
建不可修改image對象,那麼這個圖像的內容將不可再次更改。
package com.graph;
/**
* @author You Li
*
* CopyRight (C) 2005 */
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class ImageEx extends MIDlet implements CommandListener {
private Command cmdExit;
private ImageCanvas canvas;
public ImageEx() {
cmdExit = new Command("Exit", Command.SCREEN, 2);
canvas = new ImageCanvas();
// TODO 自動生成構造函數存根
}
protected void startApp() throws MIDletStateChangeException {
// TODO 自動生成方法存根
canvas.addCommand(cmdExit);
canvas.setCommandListener(this);
Display.getDisplay(this).setCurrent(canvas);
}
protected void pauseApp() {