0

imageview に画像を設定しようとしていますが、画像が表示されません。

json データから画像の URL を読み取って ImageView に設定しようとしていますが、画像が表示されません。例外は発生しません。
これが私のコードです

HotelList.class

static final String TAG_DISHIMAGEURL = "dishimageurl";
......
String imageUrl = dishResult.getString(TAG_DISHIMAGEURL);
map.put(TAG_DISHIMAGEURL, imageUrl);
.....
dishimageurl1 = hm.get(TAG_DISHIMAGEURL).toString();
 intent.putExtra("background", dishimageurl1);

HotelDetails.class

......
String dishimageurl = bundle.getString("background");
Bitmap bimage=  getBitmapFromURL(dishimageurl);
    imageView.setImageBitmap(bimage);
....   
public Bitmap getBitmapFromURL(String src) {
try {
    URL url = new URL(src);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setDoInput(true);
    Toast.makeText(this, "showing image", Toast.LENGTH_LONG).show();
    connection.connect();
    InputStream input = connection.getInputStream();
    Bitmap myBitmap = BitmapFactory.decodeStream(input);
    return myBitmap;
} catch (IOException e) {
    Toast.makeText(this, "showing exception", Toast.LENGTH_LONG).show();
    return null;
}

}

このコードで何が起こるかわかりません。例外はありませんが、私の画像は表示されません。
どなたか参考になさってください。

4

3 に答える 3

1

以下のコードを使用して、URL から画像を取得し、imageview に表示してください。

public class image extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Bitmap bitmap = DownloadImage("http://www.gophoto.it/view.php?i=http://1.bp.blogspot.com/-2LTvCCufBKc/T3L3KgcTj2I/AAAAAAAABbQ/Ki60e1LU9sE/s1600/Sachin%2BTendulkar.png");

        RelativeLayout mRlayout1 = (RelativeLayout) findViewById(R.id.mRlayout1);
        Drawable d=new BitmapDrawable(bitmap);
        mRlayoutLogin.setBackgroundDrawable(d);
    }

    private InputStream OpenHttpConnection(String urlString) throws IOException {
        InputStream in = null;
        int response = -1;

        URL url = new URL(urlString);
        URLConnection conn = url.openConnection();

        if (!(conn instanceof HttpURLConnection))
            throw new IOException("Not an HTTP connection");

        try {
            HttpURLConnection httpConn = (HttpURLConnection) conn;
            httpConn.setAllowUserInteraction(false);
            httpConn.setInstanceFollowRedirects(true);
            httpConn.setRequestMethod("GET");
            httpConn.connect();
            response = httpConn.getResponseCode();
            if (response == HttpURLConnection.HTTP_OK) {
                in = httpConn.getInputStream();
            }
        } catch (Exception ex) {
            throw new IOException("Error connecting");
        }
        return in;
    }

    private Bitmap DownloadImage(String URL) {
        Bitmap bitmap = null;
        InputStream in = null;
        try {
            in = OpenHttpConnection(URL);
            bitmap = BitmapFactory.decodeStream(in);
            in.close();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        return bitmap;
    }
}
于 2013-01-03T09:31:21.227 に答える
0

このコードを使用して画像を表示できます。

    try {
    bitmap = BitmapFactory.decodeStream((InputStream)new URL(url).getContent());
} catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
于 2013-01-03T10:04:51.090 に答える
0

UIスレッドから画像をダウンロードしているようです。これにより、UI スレッドがブロックされ、応答しないというエラーが発生します。簡単な方法として、Universal Image Loader のようなライブラリを使用できます

ユニバーサル イメージ ローダー - GitHub

これにより、画像の読み込みが管理され、誤った URL やメモリ不足エラーなどの問題が回避されます。

于 2013-01-03T10:16:28.397 に答える