1

我正在开发一个显示图像列表(来自 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 对象数组。

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

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

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

4

2 回答 2

1

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

  • 编写一个junit测试用例,做http调用,解析和提取图片链接。
  • 现在,创建一个新的 android junit 测试用例,将上面的代码放入异步任务中,创建一个只有 1 个图像的布局,并在其上渲染图像。
  • 现在,您已准备好将其集成到您的应用程序中。

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

我在这里找到了一个有趣的异步任务示例。

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

于 2012-11-09T02:55:17.827 回答
1

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

于 2012-11-09T02:56:56.810 回答