游戏开发中我们往往需要把一些列零碎的小图片合成一幅比较大的图片,需要用到这些图片时可以通过setClip画这张大图的一小部分,也可以预先通过setClip把大图分割成小图然后直接调用小图。
下面通过例子来说明如何分割图片。
建立一个Image数组:Image[ ] imgNumbers = new Image[10];
private void initImgNumbers() throws Exception {
Image imgTotal = Image.createImage(…);
Graphics g;
for ( int i = 0; i < 10; i++) {
imgNumbers[i] = Image.createImage(10, 15);//这里初始化图片数组,大小为10X15
g = imgNumbers[i].getGraphics();
g.drawImage(imgTotal, -i * 10, 0, 20);
}
}
需要说明的一点是,MIDP 1.0里面采用上述做法会丢失图片中的透明像素,补救措施有二:
一是直接setClip画大图;
二是如果是诺基亚的机子,采用如下代码:
imgNumbers[i] = DirectUtils.createImage(10, 15, 0);
(出处:http://www.knowsky.com/)