在BlackBerry上显示缩放图像
此代码可以帮助您
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
,都具有从字节数组生成图像的构造函数。我推荐使用位图,它具有简单的图像重新尺寸能力。
我不完全熟悉BB,但由于没有人回答你的问题,请查看EncodedImage类,并且在那里方法scaleImage32()应该返回缩放版本。
感谢您的回复..我一定会检查出来:) – user469999 2010-12-11 11:11:02
+1和竖起大拇指@petteri的建议 – Prasham 2010-12-11 13:14:25
petteri是正确的使用EncodedImage和scaleImage32()。具体来说,您需要使用createEncodedImage(byte[] data, int offset, int length)
以及web服务返回的字节。
请注意,scaleImage32接受'int'参数,但它们是定点数,与更广为人知的浮点数相反。为了得到你想要的定点值,使用该工具方法Fixed32
最后,如果你不需要在BlackBerry应用程序中的原始图像,你会如果Web服务确实缩放具有更好的整体体验。这将减少传输到设备的字节数,并且会减少设备上的计算以缩放图像。 scaleImage32()使用相当基本的算法,因此服务器上的缩放可能会导致质量更高的缩放图像。
只是为了增加迈克尔的回应,如果你不能在服务器上扩展,并且必须在设备上进行扩展,你可以使用5.0 API来使用Bitmap.scaleInto() – 2010-12-12 17:42:55
做更好的质量缩放。非常感谢...我一定会尝试解决方案 – user469999 2010-12-13 04:20:58
非常感谢...我一定会尝试解决方案 – user469999 2010-12-13 10:36:14