2011-03-09 2 views
0

i VHA écrit un code qui suit ...comment stocker une grande image par J2ME

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(); 

} 
} 
} 

maintenant cette image nommée minion.png est de 32 Ko et la taille pixel 803x825. dans ce cas l'image ne se charge pas parfaitement. Je l'ai essayé sur émulateur et aussi sur Nokia 3110. Il donne une erreur en disant "out of memory". La même chose fonctionne bien avec une autre image de taille 6kb et de pixels 96x96.

S'il vous plaît suggérer une idée pour stocker une grande image. thnx à l'avance ...

Répondre

1

D'abord, vous ne stockez aucune image avec ce code, juste l'affichage.

Maintenant, tous les appareils mobiles ont une limitation de la mémoire. Vous ne pouvez pas charger cette grande image si votre périphérique est à court de mémoire dans tous les cas.

Vous devez le réduire et charger la plus petite version de l'image.

+0

mon appareil mobile a 256mb mmry carte, mais il montre toujours la même erreur. en fait, je veux faire un projet de navigation de la ville, pour cela une grande image est un besoin. plz m'aide. – user651109

+0

256 Mo est que vous avez en termes de stockage, mais le miage est chargé dans la mémoire qui est certainement très peu –

+0

alors n'y at-il aucun moyen d'afficher une image de 50kb taille ??? simulateur même n'est pas le chargement de l'image entière, juste des limites. – user651109

0

Vous devez redimensionner l'image à l'aide (http://java.sun.com/javame/reference/apis/jsr118/javax/microedition/lcdui/Image.html)

Questions connexes