【发布时间】:2014-03-14 15:02:37
【问题描述】:
我正在尝试使用 J2ME MIDlet 类而不是黑莓 RIMlet 类在 OS 5.0 的黑莓设备上显示 PNG 图像。我可以使用 J2ME MIDlet 代替 RIMlets 吗?它是否与黑莓兼容,因为黑莓确实支持 J2ME?我可以从中获取图像吗?
【问题讨论】:
标签: blackberry java-me png midlet
我正在尝试使用 J2ME MIDlet 类而不是黑莓 RIMlet 类在 OS 5.0 的黑莓设备上显示 PNG 图像。我可以使用 J2ME MIDlet 代替 RIMlets 吗?它是否与黑莓兼容,因为黑莓确实支持 J2ME?我可以从中获取图像吗?
【问题讨论】:
标签: blackberry java-me png midlet
要在 BlackBerry® 设备的屏幕上显示图像,请创建一个 Image 对象并通过调用 static Image.createImage() 方法填充它。提供图像的位置作为参数。
参考display an PNG image using J2ME MIDlet classes on blackberry device
【讨论】:
我可以使用 J2ME MIDlet 代替 RIMlets...
是的,但有一些优点,如提到的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);
}
}
}
【讨论】:
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);
}
}
}
}
【讨论】:
将 Midlet 与画布一起使用以在画布上显示是很好的,因为如果您将 Midlet 与 Form 一起使用,那么它的显示图像也会在表单的背景中显示移动主题。如果您使用画布,您还可以将背景图像用作正面图像。 谢谢
【讨论】: