[英]Does anyone know how to display a BitmapField?
我有一个将图像编码为位图的代码。 但是我不确定如何在屏幕上显示它。 顺便说一句,我正在使用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();
}
}
编辑图像何时在sdcard上
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);
}
您可以执行以下操作:
油漆(图形g);
也许在一个函数中:
protected void DrawStuff(Graphics g) {
this.paint(g);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.