0

我正在从在线 xml 文件中获取标题、日期和图像并将其存储在数组列表中。我采用了 3 个不同的数组列表来存储标题、日期和图像。

我成功获取了图片网址,我的问题是如何从网址下载图片并将其显示在 imageview 中。获取网址的代码如下。

  if((xpp_name.equals("content")))
  {                                                 
xpp.next(); 
    strvalue=xpp.getText();
    if(strvalue!=null){  
        String url = strvalue.substring(
                     strvalue.indexOf("src")+5,, strvalue.indexOf("jpg")+3);
     arrayList_for_images.add(url);
    }  
    xpp.next();     
    xpp.next();}                                                                                                                    
4

3 回答 3

0

在这里,您可以找到一个延迟加载库,用于从 URL 下载图像并以ListView. 另外,我建议您避免使用 3 种不同的,而Arraylists只使用一种ArrayList,而是使用自定义类来存储图像的信息(标题、日期和图像 url)。

编辑:这是一个包含图像所需信息的示例类:

import java.util.Date;

public class ImageObject {

    private String image_name;
    private String image_url;
    private Date image_date;

public ImageObject() {
}

public ImageObject(String image_name, String image_url, Date image_date) {

    this.image_name = image_name;
    this.image_url = image_url;
    this.image_date = image_date;
}

public void setImageName(String image_name) {

    this.image_name = image_name;
}

public void setImageURL(String image_url) {

    this.image_url = image_url;
}

public void setImageDate(Date image_date) {

    this.image_date = image_date;
}


public String getImageName() {

    return this.image_name;
}

public String getImageURL() {

    return this.image_url;
}

public Date getImageDate() {

    return this.image_date;
}
}

ArrayList这是我用 one发起 a 的一个示例用法ImageObject

ArrayList<ImageObject> data = new ArrayList<ImageObject>();
ImageObject obj = new ImageObject("test.jpg", "www.imageurl.com", new Date());
data.add(obj);

这就是您从以下位置检索某个ImageObject对象的值的方式ArrayList

data.get(0).getImageName(); 
于 2013-07-04T12:04:39.697 回答
0

启动一个新线程以从 Url 下载图像并在处理程序的 imageview 中设置图像。

  private Bitmap pop_up_image_bitmap ;
  private  Handler handler ;
  private Runnable r;
  new Thread(new Runnable() {
        @Override
        public void run() {

            URL newurl;
            try {
                newurl = new URL(<Url>);
                pop_up_image_bitmap = BitmapFactory.decodeStream(newurl.openConnection() .getInputStream());
                handler.post(r);
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 


        }
    }).start();

放置处理程序:

    handler = new Handler();
     r = new Runnable()
    {
        public void run() 
        {
            if(pop_up_image_bitmap!=null){
            imageview.setImageBitmap(pop_up_image_bitmap);
            handler.postDelayed(this, 1000);
            popUpImageProgressBar.setVisibility(View.INVISIBLE);
            }
        }
    };

    handler.postDelayed(r, 1000);
于 2013-07-04T12:05:41.993 回答
0

试试这个最好的图像加载库。

https://github.com/nostra13/Android-Universal-Image-Loader

于 2013-07-04T13:46:37.767 回答