我想在黑莓设备上使用J2ME MIDlet类显示PNG图像

时间:2012-01-06 07:29:01

标签: blackberry java-me png midlet

我正在尝试使用J2ME MIDlet类而不是黑莓RIMlet类在OS 5.0上的黑莓设备上显示PNG图像。我可以使用J2ME MIDlet而不是RIMlets吗?黑莓是否支持J2ME,它是否与黑莓兼容?我可以从中获取图像吗?

4 个答案:

答案 0 :(得分:1)

要在BlackBerry®设备的屏幕上显示图像,请创建一个Image对象,然后通过调用static Image.createImage()方法填充该对象。提供图像的位置作为参数。

参考display an PNG image using J2ME MIDlet classes on blackberry device

答案 1 :(得分:1)

  

我可以使用J2ME MIDlet代替RIMlet ......

是的,但有一些优点,如提到here.

如果你想使用MIDlet,这是一个使用ImageItem

的例子
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class ImageItemMIDlet extends MIDlet implements CommandListener{
  private Command exit;
  private ImageItem imageItem;
  private Image image;
  private Display display;
  private Form form;

  public ImageItemMIDlet(){
  try{
  image = Image.createImage("/yourImage.png");
  } catch (Exception e){ }
  imageItem = new ImageItem("This is the IMAGE_ITEM Application", 
  image, ImageItem.LAYOUT_DEFAULT, "image");
  }

  public void startApp(){
  form = new Form("ImageItem Example");
  display = Display.getDisplay(this);
  exit = new Command("Exit", Command.EXIT, 1);
  form.append(imageItem);
  form.addCommand(exit);
  form.setCommandListener(this);
  display.setCurrent(form);
  }

  public void pauseApp(){}

  public void destroyApp(boolean unconditional){
  notifyDestroyed();
  }

  public void commandAction(Command c, Displayable d){
  String label = c.getLabel();
  if(label.equals("Exit")){
  destroyApp(true);
  }
  }
} 

答案 2 :(得分:1)

public class Midlet extends MIDlet {

public Display display;

public void startApp() {

    Canvas obj = new DrawImage();

    display = Display.getDisplay(this);
    display.setCurrent(obj);

}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}


public class DrawImage extends Canvas{

    int width = getWidth();
    int height = getHeight();

    protected void paint(Graphics g) {
        try {

            System.out.println("111111");
            Image image = Image.createImage("/Waterfall.png");
            if(image != null)
                g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT);
            else
                System.out.println("2222");
        } catch (IOException ex) {
            System.out.println(ex);
        }   
    }  
}   

}

答案 3 :(得分:0)

在画布上使用带有画布的Midlet非常好,因为如果你使用带有Form的Midlet然后它的显示图像,但它也显示了在窗体背景中移动的主题。如果使用画布,则还可以使用背景图像作为正面图像。 感谢