我的BlackBerry应用程序应从Web服务获取图像并将图像显示为缩略图。任何人都可以告诉我如何实现这个目标吗?
答案 0 :(得分:5)
petteri使用EncodedImage和scaleImage32()是正确的。具体来说,您需要将createEncodedImage(byte[] data, int offset, int length)
与webservice返回的字节一起使用。
请注意,scaleImage32采用'int'参数,但它们是定点数,与更广为人知的浮点数相反。要获得所需的定点值,请使用Fixed32
中的实用程序方法最后,如果您不需要BlackBerry应用程序中的原始图像,那么如果Web服务进行扩展,您将获得更好的整体体验。这将减少传输到设备的字节数,并且将减少在设备上完成的计算以缩放图像。服务器上的缩放可能会导致更高质量的缩放图像,因为scaleImage32()使用相当基本的算法。
答案 1 :(得分:3)
我也不完全熟悉BB,但由于没有其他人在回答您的问题,请查看EncodedImage类,并且方法scaleImage32()应该返回缩放版本。
答案 2 :(得分:1)
此代码可以帮助您
connection = (HttpConnection) Connector.open(fullUrl.toString(),
Connector.READ_WRITE, true);
InputStream is = hc.openInputStream();
DataInputStream dis = new DataInputStream(is);
ByteArrayOutputStream bStrm = new ByteArrayOutputStream();
int ch;
while ((ch = dis.read()) != -1) {
// System.out.println((char) ch);
// msg = msg + (char) ch;
bStrm.write(ch);
}
bb = bStrm.toByteArray();
这将从您的Web服务URL生成字节数组。这里bb
是字节数组。
BB中有两个处理图像的类。 EncodedImage
和Bitmap
都有构造函数,可以从字节数组生成图像。我建议使用Bitmap,它具有简单的图像重新调整大小的能力。