gpt4 book ai didi

java - 有谁知道如何显示 BitmapField?

转载 作者:行者123 更新时间:2023-12-02 00:47:43 25 4
gpt4 key购买 nike

我有一个将图像编码为位图的代码。但我不确定如何将其显示在屏幕上。顺便说一句,我正在使用 Blackberry JavaME。这是我用来对图像进行编码的代码。我可以使用这种方式从 SD 卡获取图像并将其显示在屏幕上吗?

FileConnection conn = 
(FileConnection)Connector.open("image1.png",Connector.READ_WRITE);
if(conn.exists()) {
InputStream is = conn.openInputStream();
BitmapField bitmap = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int ch;
while ((ch = is.read()) != -1)
{
baos.write(ch);
}
byte imageData[] = baos.toByteArray();
bitmap = new BitmapField(
EncodedImage.createEncodedImage(imageData, 0, imageData.length).getBitmap());
add(bitmap);
}

最佳答案

Secko 是正确的,您可以覆盖绘图,但我认为您遇到了困难,因为您还没有创建 ui 应用程序。

这是一个非常简单的 UI 应用程序示例,用于显示位图字段,如果完全复制它,您将需要 src 下有一个 images 文件夹,其中包含 image.png。

这是根据SDK附带的HelloWorldDemo修改的。如果您刚刚开始,我建议您查看文件夹中的示例。\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.25\components\samples\

祝你好运

public class DisplayBitmaps extends UiApplication
{
public static void main(String[] args)
{
DisplayBitmaps theApp = new DisplayBitmaps();
theApp.enterEventDispatcher();
}

public DisplayBitmaps()
{
pushScreen(new DisplayBitmapsScreen());
}
}

final class DisplayBitmapsScreen extends MainScreen
{
DisplayBitmapsScreen()
{
Bitmap bitmap = EncodedImage.getEncodedImageResource("images/image.png").getBitmap();
BitmapField bitmapField = new BitmapField(bitmap);
add(bitmapField);
}

public void close()
{
super.close();
}
}

当图像位于 SD 卡上时进行编辑

DisplayBitmapsScreen()
{
//Bitmap bitmap = EncodedImage.getEncodedImageResource("images/image.png").getBitmap();
try {
FileConnection fc = (FileConnection) Connector.open("file:///SDCard/BlackBerry/pictures/image.png");
if (fc.exists()) {
byte[] image = new byte[(int) fc.fileSize()];
InputStream inStream = fc.openInputStream();
inStream.read(image);
inStream.close();
EncodedImage encodedImage = EncodedImage.createEncodedImage(image, 0, -1);
BitmapField bitmapField = new BitmapField(encodedImage.getBitmap());
fc.close();
add(bitmapField);
}
} catch (Exception e) { System.out.println("EXCEPTION " + e); }
}

在 Field 或任何扩展 Field 类中重写绘图也可以显示图像,但我从 Secko 的示例中并没有真正理解他将在哪里显示图像,因此我在下面的示例中包含了drawImage。

protected void paint(Graphics graphics) {
graphics.drawImage(x, y, width, height, image, frameIndex, left, top);
super.paint(graphics);
}

关于java - 有谁知道如何显示 BitmapField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4467201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com