Загрузить изображение в Blackberry и показать - PullRequest
1 голос
/ 06 июня 2011

Я использую следующий код для загрузки изображения jpg и отображения в симуляторе Blackberry Curve 8900. Когда я пытаюсь загрузить свой код, он полностью блокируется и перестает отвечать. Пожалуйста, помогите мне.

public DisplayBusinessDetail(String city,Business business)
{
    AbsoluteFieldManager absoluteFieldManager = new AbsoluteFieldManager();
    absoluteFieldManager.add(new BitmapField(connectServerForImage("http://www.mobileapples.com/Assets/Content/Wallpapers/Blackberry.jpg")),0,0);
    add(absoluteFieldManager);
}

public static Bitmap connectServerForImage(String url) {

      HttpConnection httpConnection = null;
      DataOutputStream httpDataOutput = null;
      InputStream httpInput = null;
      int rc;

      Bitmap bitmp = null;
      try {
       httpConnection = (HttpConnection) Connector.open(url);
       rc = httpConnection.getResponseCode();
       if (rc != HttpConnection.HTTP_OK) {
        throw new IOException("HTTP response code: " + rc);
       }
       httpInput = httpConnection.openInputStream();
       InputStream inp = httpInput;
       byte[] b = IOUtilities.streamToBytes(inp);
       EncodedImage hai = EncodedImage.createEncodedImage(b, 0, b.length);
       return hai.getBitmap();

      } catch (Exception ex) {
       System.out.println("URL Bitmap Error........" + ex.getMessage());
      } finally {
       try {
        if (httpInput != null)
         httpInput.close();
        if (httpDataOutput != null)
         httpDataOutput.close();
        if (httpConnection != null)
         httpConnection.close();
       } catch (Exception e) {
        e.printStackTrace();

       }
      }
      return bitmp;
     }

Заранее спасибо

1 Ответ

1 голос
/ 06 июня 2011

Вам необходимо убрать код сокета из основного потока событий пользовательского интерфейса.Ваш код выполняет загрузку в потоке пользовательского интерфейса, что означает отсутствие реакции пользовательского интерфейса при загрузке байтов.

...