如何使用线程从服务器加载图像?

时间:2011-03-28 12:33:45

标签: android multithreading

我的一些活动上有几个图像,这些图像都是从远程服务器连接的。问题是我每次进行其中一个包含来自远程服务器的图像的活动。所有图像必须首先加载,否则您将获得一个黑色的空屏幕。有时需要大约1-5分钟才能加载,有时甚至会强行关闭设备。无论如何我可以解决这个问题吗?有人建议我使用Thread,但我真的不知道如何制作一个。有些人可以给我一些例子,我会非常感激。

以下是我正在使用的代码:

ImageViewimgView =(ImageView)findViewById(R.id.image01);
        Drawable drawable = LoadImageFromWebOperations("http://forum.roda.hr/images/customavatars/avatar10164_2.gif");
        imgView.setBackgroundDrawable(drawable);



private Drawable LoadImageFromWebOperations(String url) {
        try {
            InputStream is = (InputStream) new URL(url).getContent();
            Drawable d = Drawable.createFromStream(is, "src name");
            return d;
            }
        catch (Exception e) {
            System.out.println("Exc="+e);
            return null;
        }
    }

我一直在努力解决这个问题,请帮助我,这对我来说真的很重要。提前致谢!

3 个答案:

答案 0 :(得分:0)

试试这个example,它使用AsyncTask和ProgressDialog在后台执行工作,并向用户显示工作正在进行中。

答案 1 :(得分:0)

我推荐使用DroidFu库。它有一个WebImageView小部件,它将处理来自远程源的图像加载。 https://github.com/kaeppler/droid-fu

答案 2 :(得分:0)

试试这个帖子

Lazy load of images in ListView

这是List视图,我们可以修改并为我们想要的任何东西工作。

感谢。