【问题标题】:Updating images dynamically from URL with Android使用 Android 从 URL 动态更新图像
【发布时间】:2010-08-17 20:29:11
【问题描述】:

所以我有这个程序,它在http://www.muttville.org/mutts/feed 抓取 RSS 提要并显示可用狗的列表,基本上用左边的狗的图像填充 ListView 中的每个项目,以及关于狗的标题在右边。

我的应用程序可以很好地执行、抓取和解析 XML 提要。 onCreate,它将图像 URL 作为字符串存储在每个项目中。我有一个 RSSFeed 数据结构,它基本上是一个 RSSItem 对象数组。问题在于如何异步更新图像。

我有一个 imageDownloader,实际上是从 Google 的 Android 开发博客中获得的,它可以更新图像并存储它们,但预加载时间很长。我宁愿立即开始显示这些项目并在我得到它们时更新图像。令人讨厌的是,listview 一开始也没有响应滚动,调用我的 imageDownloader 再次检索项目。有什么方法可以让 ImageViews 只获取指向 RSSItem 中 ImageView 对象的指针,然后更新它?

我对 Android 开发还很陌生,所以我很有可能没有意识到一些基本的东西。这是我的适配器代码:

私有类 FeedItemAdapter 扩展 ArrayAdapter {

    private List<RSSItem> items;

    public FeedItemAdapter(Context context, int textViewResourceId, List<RSSItem> items) {
        super(context, textViewResourceId, items);
            this.items = items;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            if (v == null) {
                LayoutInflater vi = 
                    (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.displayitem, null);
            }

            RSSItem o = items.get(position);
            if (o != null) {
                    ImageView tt = (ImageView) v.findViewById(R.id.leftimage);
                    TextView bt = (TextView) v.findViewById(R.id.righttext);
                    if (tt != null) {   
                        //get image from url string
                        imageDownloader.download(o.getImageString(), tt);
                    }
                    if(bt != null){
                          bt.setText(feed.getItem(position).getTitle());
                    }
            }
            return v;
    }


}

【问题讨论】:

    标签: android listview rss adapter imageview


    【解决方案1】:

    创建一个继承 ImageView 的新类,默认显示“待处理”图像,并具有在另一个线程中开始从网络加载的函数。完成后,更新图像。

    【讨论】:

      猜你喜欢
      • 2017-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多