0

サーバーから画像を取得するブラックベリーアプリケーションを開発しています。一部の画像は取得されており、その他の画像はencodedImageLineでエラーが発生します。

            ImageFromUrl _img = new ImageFromUrl(item.getThumbLink());
            byte[] bytes = _img.getbitmap();
            Bitmap newBitmap = new Bitmap(width, fieldHeight);
            if (bytes != null) {
                // bitmap = Bitmap.createBitmapFromBytes(bytes, 0,
                // bytes.length, Bitmap.SCALE_TO_FIT);
                EncodedImage image = EncodedImage.createEncodedImage(bytes,
                        0, bytes.length);
            }

そしてそれはバイトを取得する接続です

ImageFromUrl(String url) {
    this.url = url;
}

public byte[] getbitmap() {

    try {

        connection = (HttpConnection) Connector.open(
                url + Connection.getBlackBerryConnectionParams(),
                Connector.READ, true);

        InputStream is = connection.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);
        }
        dataArray = bStrm.toByteArray();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return dataArray;
}

エラーなしですべての画像を取得するには、どうすればそれを解決できますか?

4

1 に答える 1

0

このコードを試してください:

public Bitmap getBitmapFromUrl(String url)
{
Bitmap bitmap=null;
try
{
    HttpConnection connection=(HttpConnection)Connector.open(url);
    connection.setRequestMethod(HttpConnection.GET);
    InputStream is=connection.openInputStream();
    int length=is.available();
    byte[] data=new byte[length];               
    data=IOUtilities.streamToBytes(is); 
    connection.close();
    is.close();
    bitmap=Bitmap.createBitmapFromBytes(data,0,data.length,1);
    if(bitmap!=null)
        return bitmap;
    else
        return bitmap=Bitmap.getBitmapResource("noimage.png");

}
catch (Exception e) 
{
    return bitmap=Bitmap.getBitmapResource("noimage.png");
}
}
于 2012-06-07T04:43:11.920 に答える