0

サーバー上にある写真を取得しようとしています。だから私は次の方法でそれを取得しようとしています:

  static Bitmap downloadBitmap(String url) {
    final AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
    final HttpGet getRequest = new HttpGet(url);

    try {
        HttpResponse response = client.execute(getRequest);
        final int statusCode = response.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_OK) { 
            Log.w("ImageDownloader", "Error " + statusCode + " while retrieving bitmap from " + url); 
            return null;
        }

        final HttpEntity entity = response.getEntity();
        if (entity != null) {
            InputStream inputStream = null;
            try {
                inputStream = entity.getContent(); 
                final Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                return bitmap;
            } finally {
                if (inputStream != null) {
                    inputStream.close();  
                }
                entity.consumeContent();
            }
        }
    } catch (Exception e) {
        // Could provide a more explicit error message for IOException or IllegalStateException
        getRequest.abort();
    } finally {
        if (client != null) {
            client.close();
        }
    }
    return null;
}

次に、別の方法で次の2行があります。

      ImageView e = (ImageView) findViewById(R.id.img);
      e.setImageBitmap(downloadBitmap(img_url(param1.img)));

そしてxml

      <?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <!-- Name Label -->
    <ImageView
      android:id="@+id/img"  
      android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:contentDescription="@string/picture">         
    </ImageView>

ただし、画像は表示されず、エラーは発生しません。誰が私が間違っているのか教えてもらえますか?

4

2 に答える 2

0

まず、この catch ステートメントにログ ステートメントを追加します。

} catch (Exception e) {
    // Could provide a more explicit error message for IOException or IllegalStateException
    getRequest.abort();
} 

あなたが気付いていない別の例外がスローされている可能性があります。

于 2012-10-06T21:39:38.913 に答える
0

ライブラリ「Universal Image Loader」を使用して画像を表示することをお勧めします。

于 2012-10-06T19:33:43.563 に答える