gpt4 book ai didi

java - 在三星设备中加载大图像时出现问题(J2me游戏)

转载 作者:行者123 更新时间:2023-12-02 08:11:37 25 4
gpt4 key购买 nike

当我尝试在三星设备中加载大图像(1440*400)时。它显示java错误。但在诺基亚却运行良好。 bg1.png图片大小只有3kb

示例代码

  Image bg;

try {

bg=Image.createImage(("/Bg1.png"));

}
catch (IOException ex) {

ex.printStackTrace();

}

运行方法

公共(public)无效运行(){

    Graphics g=getGraphics();

while(true)
{

g.drawImage(bg, 0, getHeight()-bg.getHeight(),0);
flushGraphics();
}
}

它显示三星游戏错误。如何解决这个问题

我也尝试过这个例子

Image source;
source = Image.createImage(600,400);
g=getGraphics();
bg=Image.createImage("/res/bg1.png");

如果我制作Image.createImage(700,400)Image.createImage(600,500),它也会在模拟器中显示内存不足错误。如果该值小于或等于1000则表示工作正常。我不明白问题出在哪里?

最佳答案

您所描述的问题的主要原因是移动设备的资源有限。

如果您要面向广泛的设备(包括低端设备),您只需学会接受这一点。

例如,每个 MIDP 2 (JSR 118) 规范的最低内存要求如下 ( source ):

  • 用于 MIDP 实现的 256 KB 非 volatile 内存,超出了 CLDC 的要求。
  • 8 KB 非 volatile 内存,用于存储应用程序创建的持久数据
  • 用于 Java 运行时的 128 KB volatile 内存(例如 Java 堆)

现在让我们从这个角度来看看您的图像。请记住,在 MIDP 中,ARGB像素占用4个字节。

    Image.createImage(600,400)

上面给出了 600x400x4=960000 字节,960 KB,即远远超出了上述内存要求。对于 MIDP 2 兼容设备来说,抛出 OOME 是完全合法的。

关于PNG图片文件占用3KB,请注意PNG是一种压缩格式。处理能力不足的设备可能需要解压缩 png 图像才能使用它,这可能会使其大小远远超出内存限制。

关于java - 在三星设备中加载大图像时出现问题(J2me游戏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7321014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com