2010-10-22 125 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