说明(GameUtil是本代码所在类)
代码:
- URL url =GameUtil.class.getClass().getResource(path);
- Image img = Toolkit.getDefaultToolkit().getImage(url);
- int height = img.getHeight(null);
问题: height == -1; 也就是没有图片。原因:
使用 img.getHeight(null); 图片加载到内存中,可获图片真实高度,否则得到img对象,但没加载到内存就会等于 -1;
而toolkit并没有加载到内存,只有调用g.drawImage才把图片加载到内存。
解决方法: 将图片强制加载到内存。
1.
BufferedImage img = ImageIO.read(new FileInputStream(path));
int height = img.getheight(null);
这样图片就加载到内存了。也就得到图片高度了。
2.
URL url =GameUtil.class.getResource("images/diamondPick.png");
image = Toolkit.getDefaultToolkit().getImage(url);
MediaTracker mTracker = new MediaTracker(this);
mTracker.addImage(image,1);
mTracker.waitForID(1);
int height = image.getHeight(null);
用 mTracher.waitForID(1),就可以把图片强制加载到图片里了。