2009-09-14 96 views
3

我正在使用Blackberry JDE(9000模擬器),並且想知道我是否可以從網上顯示圖像。黑莓應用程序,顯示來自Web的圖像

目前,我看到的教程使用Bitmap.getBitmapResource來顯示黑莓應用程序本地的圖像,但看着API,我沒有看到任何支持提供網址。

我還有其他的黑莓圖像類可以檢查嗎?或者這個功能不支持?

回答

4

您可以使用HTTPConnectionInputStream下載圖像,從流創建EncodedImage然後顯示它。

coderholic - Blackberry WebBitmapField

順便說一句,你可以使用IOUtilities.streamToBytes()方法來讀取InputStream的直接字節!

+0

但是,考慮到currenly所有在屏幕上顯示一些方式涉及「場」類...而且只有一個位圖字段...這是否意味着以顯示EncodedImage我有寫我自己的領域?或者有另一種顯示圖像的方法嗎?如果是這樣,那是什麼? – Jenny 2009-09-14 16:09:38

+0

如果您閱讀鏈接的文章,那麼將setImage(EncodedImage)設置爲BitmapField即可。但是,如果你願意,你可以在任何擴展Field類的類中對paint()事件執行graphics.drawImage()。在MainScreen或Horizo​​ntalFieldManager中。 – 2009-09-14 16:32:39

+0

但是,它的一個新功能是從網絡傳輸圖像的數據,所以我建議你實施一個擴展到BitmapField,這樣你就可以多次使用它。 – 2009-09-14 16:40:59

0

如果希望做出準確做到這一點的代碼(雖然這個職位是舊的,所以我猜你不這樣做了)

Here

1

這裏是你的問題的代碼示例:

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; 
相關問題