【问题标题】:displaying images in a listview在列表视图中显示图像
【发布时间】:2012-11-09 02:39:47
【问题描述】:

我正在开发一个显示图像列表(来自 URL)和 ListView 中的一些文本的应用程序。看起来像这样(+ 是图像):

-------------------------
|   +++       some text |  
|   +++       some text |  
-------------------------
|   +++       some text |  
|   +++       some text |  
-------------------------
|   +++       some text |  
|   +++       some text |  
-------------------------
|   +++       some text |  
|   +++       some text |  
-------------------------

我通过解析包含某个网页的源代码的字符串来获取 URL 和文本,并且我正在使用 HttpGet 请求获取该源字符串。

所以这个应用程序需要下载一个网页,解析它,然后下载一些图像并显示在一个列表中。

我不确定最后一部分。 我设法使用 asynctask 下载和解析 html 源代码,但其余的对我来说有点棘手。

我该怎么做?

(我希望这已经足够清楚了)

编辑:

我现在会尝试更准确:) 我创建了一个名为 MediaObject 的对象,它有 3 个字符串(图像 URL、歌曲名称和歌曲的艺术家)。我还写了一个函数,它获取一个字符串(包含一个 html 源代码),从中提取 URL 和名称,并返回一个 MediaObject 对象数组。

此时我只显示 1 首歌曲,使用 2 个异步任务: 1) 要获取 html 源代码,然后获取 MediaObject 对象并在文本视图中显示歌曲/艺术​​家名称。 2)下载图像并将其显示在图像视图中。

它工作正常,但仅适用于 1 个 MediaObject。 我想在列表视图中显示几首歌曲(使用几个 MediaObject 对象)。

问题是我不知道该怎么做。 我应该使用几个异步任务吗?每张图片都有新的异步任务?

【问题讨论】:

  • 坦率地说,我想知道为什么人们会否决好问题。他们只是似乎对他们的否决票不够自信,因此没有评论。点赞。
  • 您是在寻找从 url 下载的图片还是只是在列表中显示它们?

标签: android android-listview android-imageview


【解决方案1】:

检查the link 。这里有一个名为 showImage() 的函数,它接受一个 url 作为参数并返回位图,您可以使用它来设置图像视图。对于用于显示图像的自定义列表视图,您需要像 here 一样自定义列表,并使用类似 imageview1.setImageBitmap(bm);

【讨论】:

    【解决方案2】:

    首先,把它分成几块。不要一起想。我推荐以下。

    • 编写一个junit测试用例,进行http调用,解析并提取图片链接。
    • 现在,创建一个新的 android junit 测试用例,将上述代码放入异步任务中,创建一个只有 1 个图像的布局,并在其上渲染图像。
    • 现在,您可以将其集成到您的应用中了。

    junit 的理念是,您将能够编写这段代码并快速连续地对其进行测试,因为您是第一次编写它。请记住,开发速度非常重要。

    我发现了一个有趣的异步任务示例here

    至于您的问题,您需要更清楚地了解您正在进行的 http 调用类型以及它提供的返回类型。 Json、XML、什么?

    【讨论】:

      猜你喜欢
      • 2013-05-18
      • 2013-03-26
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      相关资源
      最近更新 更多