2

我正在编写一个应用程序,它需要 HTML 页面并解析它们以显示在屏幕上。具体来说,此应用程序从留言板中提取 HTML 并列出用户发布的帖子。

问题是帖子中的很多内容都是<img>标签中的图片,所以我需要写一个Html.ImageGetter来处理图片的下载。

我的textView.setText()方法将如下所示:

myTextView.setText(Html.fromHtml(myText, new ImageGetter() {                 
        @Override
        public Drawable getDrawable(String source) {
        Drawable d;

        // Need to async download image here 

         return d;
        }
    }, null));

同步执行此操作很简单,但是否有建议的异步执行此操作的方法,以免锁定我的 UI 线程?我还想最终构建这些图像的缓存,但我想一旦异步下载存在,这将非常简单。

4

4 回答 4

2

同步执行此操作很简单,但是否有建议的异步执行此操作的方法,以免锁定我的 UI 线程?

这将是困难的,也许是不可能的。你必须立即返回一些东西。即使那是占位符,您也面临下载完成后如何替换占位符的挑战。由于您无法访问ImageView渲染图像(如果有 ,我不ImageView知道您将如何安排替换占位符。

于 2011-02-03T15:32:05.063 回答
1

我会使用 anAsyncTaskThread/Handler组合。

于 2011-02-03T15:23:04.960 回答
0

如何在显示 html 之前使用不可见的 Html.fromHtml 提取所有 url,将这些 url 放入列表中,异步下载所有图像,将它们存储在内存缓存中,然后使用 ImageGetter 实现缓存查找url 作为键,drawable 作为值。

于 2011-03-02T08:13:06.023 回答
0

对于异步下载图像并将它们存储在内存缓存中,这里有一个迷你库:) https://github.com/koush/UrlImageViewHelper

于 2011-04-19T09:24:46.647 回答