一 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 可以是数组
J2ME image 图象的处理
最新推荐文章于 2018-03-29 17:29:44 发布