我正试图在我的黑莓手机上显示SD卡中的图像。
我的代码是这样,但黑莓屏幕上没有显示任何内容。
InputStream input = filenames.openInputStream();
Image image=Image.createImage(input);
Image copy = Image.createImage(image.getWidth(), image.getHeight());
javax.microedition.lcdui.Graphics g = copy.getGraphics();
g.drawImage(image, 0, 0, 0);
答案 0 :(得分:1)
我认为问题可能在于您正在创建图片copy
并尝试将input
图片绘制到该图片上。在不知道其余代码的情况下,它似乎永远不会添加到您的MainScreen对象上,因此不会显示。
您是否有任何特殊原因试图这样做?
您最好使用BitmapField
代替并明确地将其添加到您的主屏幕。像
BitmapField imageCanvas = new BitmapField();
InputStream input = photoFile.openInputStream();
int fileSize = (int) photoFile.fileSize();
byte[] data = new byte[fileSize];
input.read(data, 0, fileSize);
Bitmap photoBitmap = EncodedImage.createEncodedImage(data, 0, data.length).getBitmap();
imageCanvas.setBitmap(photoBitmap);
add(imageCanvas);
我为了简洁而省略了try catch
块