一 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 可以是数组