2010-10-22 122 views
2

我正在使用此代碼顯示來自URL的圖像。我的代碼運行,它不會給出錯誤,但圖像不顯示。 有什麼幫助嗎?顯示圖像(從Url)在ImageView中

下面是代碼:

public class MainActivity extends Activity { 

    ImageView i; 
    String imageUrl = "http://64.250.238.26:1111/clips/sunsetsofmauisplash.jpg"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     try { 
      i = (ImageView) findViewById(R.id.image); 
      Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(imageUrl).getContent()); 
      i.setImageBitmap(bitmap); 
     } catch (MalformedURLException e) { 

     } catch (IOException e) { 

     } 

    } 
} 

回答

3

嘗試這種做法,日誌代碼會告訴你,如果有被拋出

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    try { 
     URL url = new URL(imageUrl); 
     HttpGet httpRequest = null; 

     httpRequest = new HttpGet(url.toURI()); 

     HttpClient httpclient = new DefaultHttpClient(); 
     HttpResponse response = (HttpResponse) httpclient.execute(httpRequest); 

     HttpEntity entity = response.getEntity(); 
     BufferedHttpEntity b_entity = new BufferedHttpEntity(entity); 
     InputStream input = b_entity.getContent(); 

     Bitmap bitmap = BitmapFactory.decodeStream(input); 

     ImageView i = (ImageView) findViewById(R.id.image); 
     i.setImageBitmap(bitmap); 
    } catch (MalformedURLException e) { 
     Log.e("log", "bad url", t); 
    } catch (IOException e) { 
     Log.e("log", "io error", t); 
    } 
} 

更新任何異常:

挖我發現後這Fix到正在被記錄的解碼器錯誤

+0

感謝您的repl y – XXXXXX 2010-10-23 04:48:29

+0

使用此代碼我運行的應用程序,但圖像不顯示.. – XXXXXX 2010-10-23 04:49:13

+0

我看到日誌,它顯示「請求時間失敗java.net.SocketException:地址家庭不支持的協議」 – XXXXXX 2010-10-23 04:51:52