从web加载图像时出现问题(android)

从web加载图像时出现问题(android),android,image,url,Android,Image,Url,这是可行的,但在少数情况下,由于“SocketException:Address系列不受协议支持”,应用程序会冻结。有办法解决这个问题吗?谢谢您正试图从UI线程下载文件…(这就是您的UI冻结的原因) 使用一个单独的线程,这样你的UI就不会冻结 这应该可以解决您的问题。正如st0le所指出的,您正在尝试从UI线程执行繁重的任务 Android中的所有重负荷工作都应该在其他工作线程上完成。因为在主线程(或UI线程)中执行此操作可能会使应用程序无响应,并且可能会被终止,因为系统被说服认为它已挂起 因此

这是可行的,但在少数情况下,由于“SocketException:Address系列不受协议支持”,应用程序会冻结。有办法解决这个问题吗?谢谢

您正试图从UI线程下载文件…(这就是您的UI冻结的原因)

使用一个单独的线程,这样你的UI就不会冻结


这应该可以解决您的问题。

正如st0le所指出的,您正在尝试从UI线程执行繁重的任务

Android中的所有重负荷工作都应该在其他
工作线程上完成。因为在
主线程
(或UI线程)中执行此操作可能会使应用程序无响应,并且可能会被终止,因为系统被说服认为它已挂起


因此,您必须在单独的线程中执行长时间运行的操作。为了实现这一点,您可以使用。

Ok,我尝试了这个线程中的第一个答案:,但是“DownloadImageTask”的一部分“new DownloadImageTask.execute(mChart);”在eclipse中变为红色,即使创建了类。我错过什么了吗?
public Object fetch(String address) throws MalformedURLException,
IOException {
    URL url = new URL(address);
    Object content = url.getContent();
    return content;
}  

private Drawable ImageOperations(Context ctx, String url) {
    try {
        InputStream is = (InputStream) this.fetch(url);
        Drawable d = Drawable.createFromStream(is, "src");
        return d;
    } catch (MalformedURLException e) {
        return null;
    } catch (IOException e) {
        return null;
    }
    catch (Exception e) 
    {
        return null;
    }
}

try {
            Drawable a =ImageOperations(this,"url"); imgView.setImageDrawable(a);
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();