图像无法显示图像视图

问题描述:

我想在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; 
} 

}

我不明白这个代码发生什么。没有任何例外,但我的图像不可见。
请给我任何参考。

+0

也许你的问题与布局问题有关? – Blackbelt

请使用下面的代码从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; 
    } 
} 

您可以通过此代码查看图像。

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(); 
} 

看来你是下载从UI线程的图像。这将阻止UI线程,并会给你没有响应错误。作为一种简单的方法,你可以使用图书馆像通用图像装载机

Universal Image Loader - GitHub

这将管理映像加载为你和避免这样不正确的网址,内存不足的错误的问题。