我正在使用Blackberry JDE(9000模擬器),並且想知道我是否可以從網上顯示圖像。黑莓應用程序,顯示來自Web的圖像
目前,我看到的教程使用Bitmap.getBitmapResource
來顯示黑莓應用程序本地的圖像,但看着API,我沒有看到任何支持提供網址。
我還有其他的黑莓圖像類可以檢查嗎?或者這個功能不支持?
我正在使用Blackberry JDE(9000模擬器),並且想知道我是否可以從網上顯示圖像。黑莓應用程序,顯示來自Web的圖像
目前,我看到的教程使用Bitmap.getBitmapResource
來顯示黑莓應用程序本地的圖像,但看着API,我沒有看到任何支持提供網址。
我還有其他的黑莓圖像類可以檢查嗎?或者這個功能不支持?
您可以使用HTTPConnection和InputStream下載圖像,從流創建EncodedImage然後顯示它。
見coderholic - Blackberry WebBitmapField
順便說一句,你可以使用IOUtilities.streamToBytes()方法來讀取InputStream的直接字節!
如果希望做出準確做到這一點的代碼(雖然這個職位是舊的,所以我猜你不這樣做了)
這裏是你的問題的代碼示例:
HttpConnection httpConn = null;
InputStream inputStream = null;
int ResponseCode = HttpConnection.HTTP_OK;
byte[] ResponseData = null;
try {
httpConn = (HttpConnection) Connector.open(url, Connector.READ, true);
ResponseCode = httpConn.getResponseCode();
if (ResponseCode == HttpConnection.HTTP_OK) {
inputStream = httpConn.openInputStream();
ResponseData = IOUtilities.streamToBytes(inputStream);
}
}
catch(IOException e){
throw new IOException("HTTP response code: "
+ ResponseCode);
}
finally {
try {
inputStream.close();
inputStream = null;
httpConn.close();
httpConn = null;
}
catch(Exception e){}
}
return ResponseData;
但是,考慮到currenly所有在屏幕上顯示一些方式涉及「場」類...而且只有一個位圖字段...這是否意味着以顯示EncodedImage我有寫我自己的領域?或者有另一種顯示圖像的方法嗎?如果是這樣,那是什麼? – Jenny 2009-09-14 16:09:38
如果您閱讀鏈接的文章,那麼將setImage(EncodedImage)設置爲BitmapField即可。但是,如果你願意,你可以在任何擴展Field類的類中對paint()事件執行graphics.drawImage()。在MainScreen或HorizontalFieldManager中。 – 2009-09-14 16:32:39
但是,它的一個新功能是從網絡傳輸圖像的數據,所以我建議你實施一個擴展到BitmapField,這樣你就可以多次使用它。 – 2009-09-14 16:40:59