我测试使用两种方法在我的应用程序中加载超过 2m 大小的图片。
private void loadImages() {
long currentTime=System.currentTimeMillis();
MediaTracker mediaTracker = new MediaTracker(this);
images = new HashMap<String, Image>();
for (Iterator iterator = model.getAllImages().iterator(); iterator
.hasNext(); mediaTracker.addImage(tempImage, 0)) {
String filename = (String) iterator.next();
try{
tempImage=ImageIO.read(Game.class.getResourceAsStream(filename));
}catch(Exception e){
}
//URL imageURL = getClass().getResource(filename);
// tempImage = getImage(getCodeBase(), imageURL.toString());
images.put(filename, tempImage);
}
try {
mediaTracker.waitForID(0);
} catch (InterruptedException interruptedexception) {
}
System.err.println(System.currentTimeMillis()-currentTime);
}
我的测试结果显示ImageIO.read()
速度比 . 慢两倍getImage()
。有人能解释一下为什么吗?等你回复。