带有照片的Android列表视图

时间:2012-05-24 10:55:59

标签: android listview

  

可能重复:
  Android - How do I do a lazy load of images in ListView

美好的一天,我做了一个包含文字,图片和评级栏的列表视图。我使用已经完成的ksoap来获取这些信息,它就像魅力一样!

现在有一个问题,正如我之前提到的,我确实在listview中有一个图像,如果我没有删除照片,它将变为laggy/slow response但是在删除图像后,它将会只有textview和ratingbar才能再次变得平滑。

如果我想要包含图像,如何解决滞后问题。请告诉我你是否需要一个例子,所以我会发布android .apk。我希望有一个解决方案。 低于我在listview上的图像代码:

String s = strTitle[position];      
System.out.println(s);      
String image_URL = imageURL[position];      
BitmapFactory.Options bmOptions;
bmOptions = new BitmapFactory.Options();
bmOptions.inSampleSize = 1;
Bitmap bm = LoadImage(image_URL, bmOptions);
ivLogo.setImageBitmap(bm);              
return rowView;

private Bitmap LoadImage(String URL, BitmapFactory.Options options)
{
    Bitmap bitmap = null;
    InputStream in = null;       
    try {
        in = OpenHttpConnection(URL);
        bitmap = BitmapFactory.decodeStream(in, null, options);
        in.close();
    } catch (IOException e1) {  }
    return bitmap;               
}

private InputStream OpenHttpConnection(String strURL) throws IOException{
    InputStream inputStream = null;
    URL url = new URL(strURL);
    URLConnection conn = url.openConnection();

    try{
        HttpURLConnection httpConn = (HttpURLConnection)conn;
        httpConn.setRequestMethod("GET");
        httpConn.connect();

        if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) 
        {
            inputStream = httpConn.getInputStream();
        }
    }
    catch (Exception ex){    }
    return inputStream;
}

1 个答案:

答案 0 :(得分:5)

您必须使用LazyLaoding概念。在这里,您尝试下载移动中的图像,这是使您的listview滞后的原因。

这是链接,

Lazy load of images in ListView

你将能够找到关于懒惰的大量讨论,并且你可以看到这个答案,最着名的概念。

https://stackoverflow.com/a/3068012/603744

编辑1

你也可以看看无尽的适配器。这是一个样本,

Android Endless List

https://github.com/commonsguy/cwac-endless