我写了一个跟随......的代码。
package hello;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
public class Immutable extends MIDlet implements CommandListener {
private Display display;
private Form form;
private Command exit;
private Image image;
private ImageItem imageItem;
public Immutable() throws IOException
{
display = Display.getDisplay(this);
exit = new Command("Exit", Command.EXIT, 1);
form = new Form("Immutable Image Example");
form.addCommand(exit);
form.setCommandListener(this);
try
{
image = Image.createImage("/hello/minion.png");
imageItem = new ImageItem("This is the IMAGE_ITEM Application",
image,ImageItem.LAYOUT_NEWLINE_BEFORE |ImageItem.LAYOUT_LEFT |
ImageItem.LAYOUT_NEWLINE_AFTER, "My Image");
form.append(imageItem);
}
catch (java.io.IOException error)
{
Alert alert = new Alert("Error", "Cannot load minion.png.",null, null);
alert.setTimeout(Alert.FOREVER);
alert.setType(AlertType.ERROR);
display.setCurrent(alert);
}
}
public void startApp()
{
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command command, Displayable Displayable)
{
if (command == exit)
{
destroyApp(false);
notifyDestroyed();
}
}
}
现在名为minion.png的图像为32kb,像素大小为803x825。在这种情况下,图像没有完美加载。我已经在模拟器和诺基亚3110上尝试过它。它给出了“内存不足”的错误。
同样的事情与另一张大小为6kb,像素为96x96的图像运行良好。
请提出一些存储大图像的建议。 thnx提前...
答案 0 :(得分:1)
首先,您不是通过此代码存储任何图像,只是显示。
现在所有移动设备都有内存限制。如果您的设备在任何情况下内存不足,则无法加载此大图像。
您需要将其缩小并加载较小版本的图片。
答案 1 :(得分:0)
您需要使用(http://java.sun.com/javame/reference/apis/jsr118/javax/microedition/lcdui/Image.html)调整图像大小
答案 2 :(得分:0)