一 Image類
所屬包名:javax.microedition.lcdui
方法:
㈠ createImage創建不可變圖像
1 從一個指定名稱的源圖象文件中創建一個不可改變的圖象
語法:public static Image createImage(String name ) throws IOException
name 源圖像名稱
2 從一個字節數組存儲中創建一個不可變圖象
語法:public static Image createImage(byte[ ] imageData, int imageOffset ,int imageLength)
imageData 圖像字節數組
imageOffset 起始數據位置
imageLength 數據的長度
3 從二進制數據流中創建一個不可變圖象
語法:public static Image createImage(java.io.InputStream stream) throws java.io.IOException
stream 包含圖象數據字節流
㈡ 用drawImage把圖象繪製到手機屏幕上去
語法:public void drawImage(Image img, int x, int y, int anchor )
x,y軸座標,anchor 基點
設置x,y點是哪個基點,基點9種位置
用法: g.drawImage( image, 50,50, HCENTER | VCENTER )
㈢ 創建可變圖像
1 方法: public static Image createImage(int width, int height )
2 創建一個繪製可變圖像的Graphics對象,用getGraphics方法
public Graphics getGraphics( )
3 檢測圖像是否可變,用isMutable方法
public boolean isMutable( )
4 不可變圖像不能轉化成可變圖像,但是可變圖像可以轉化爲不可變圖像,用的是
public static Image createImage( Image source )
source 源圖像
㈣圖像方位的變換
語法 : public static Image createImage(Imge image , int x, int y, int width, int height ,int transform )
x,y是圖像左上角的座標,width和height是圖像的寬度和高度
transform的值
Sprite.TRANS_NONE 取值 0 效果:保持原位
Sprite.TRANS_ROT90 取值 5 效果:順時針旋轉90度
Sprite.TRANS_ROT180 取值 3 效果:順時針旋轉180度
Sprite.TRANS_ROT270 取值 6 效果:順時針旋轉270度
Sprite.TRANS_MIRROR 取值 2 效果:沿垂直軸翻轉
Sprite.TRANS_MIRROR_ROT90 取值 7 效果:沿垂直軸翻轉再順時針旋轉90度
Sprite.TRANS_MIRROR_ROT180 取值 1 效果:沿垂直軸翻轉再順時針旋轉180度
Sprite.TRANS_MIRROR_ROT270 取值 4 效果:沿垂直軸翻轉再順時針旋轉270度
㈤ 透明度的處理
語法: public static Image createRGBImage( int[ ] rgb, int width, int height, boolean processAlpha )
rgb 以0xAARRGGBB格式存儲ARGB圖像的數組
width ,height 圖像的寬度和高度
processAlpha true圖像數據包含透明數據,false圖像數據不包含透明數據
用GetRGB獲取圖像中一個指定區域ARGB數據
public void getRBG( int [ ] rgbData ,int offset ,int scanlength ,int x, int y ,int width ,int height )
rgbData 以0xAARRGGBB格式存儲ARGB圖像的數組
offset 第一個圖像數據在ARPG數組中對應的元素索引
scanlength 圖像每行數據個數
x,y 圖像區域左上角座標 width height 繪製圖像區域的寬度和高度
二 TiledLayer類
所屬包名:javax.microedition.lcdui.game
㈠構造器的語法
public TiledLayer ( int columns, int rows, Image image, int tileWidth ,int tileHeight )
columns 背景寬度,以所佔單元格數量爲單位
rows 背景的高度,以所佔單元格數量爲單位
image 包含構成背景各幅圖塊的整體圖像對象
tileWidth 每幅圖塊的寬度,以像素爲單位
tileHeight 每幅圖塊的高度,以像素爲單位
在後期可以用setStaticTileSet( )方法重新爲TiledLayer類實例指定圖塊對象
public void setStaticTileSet( Image image, int tileWidth ,int tileHeight )
㈡靜態場景處理
爲單元格設定靜態圖塊
public void setCell ( int col, int row ,int tileIndex )
col 單元格列號
row 單元格行號
tileIndex 圖塊索引號
爲指定舉行區域中多個單元格設定靜態圖塊
public void fillCells( int col, int row , int numCols, int numRows ,int tileIndex )
numCols 指定區域單元格每行個數
numRows 指定區域單元格每列個數
㈢動態場景處理
創建動態索引
public int createAnimatedTile ( int staticTileIndex )
staticTileIndex 靜態圖塊索引號
可以看出動態索引需要指定靜態圖塊作爲初始圖塊,爲了實現動畫效果,在變換畫面時調用setAnimatedTile( )方法
動態圖塊索引號與靜態圖塊索引號建立關聯
public void setAnimatedTile( int animatedTileIndex , int staticTileIndex )
animatedTileIndex 動態圖塊索引號
staticTileIndex 靜態圖塊索引號staticTileIndex 可以是數組