0

作为原型,我正在尝试修改Android 开发者博客中的android-imagedownloader 演示,以使用 HTML 图像标签而不是硬编码的. 我已通过替换为以下内容对其进行了修改:ImageViewsImageAdapter.getView()

public View getView(final int position, View view, final ViewGroup parent) {
   TextView textView = (TextView) view;
    if (textView == null) {
       textView = new TextView(parent.getContext());
       textView.setPadding(6, 6, 6, 6);
    }
    textView.setText(Html.fromHtml("<img src=\"" + URLS[position] + "\"/>", 
       new ImageGetter() {
       @Override public Drawable getDrawable(final String source) {
          ImageView imageView = new ImageView(parent.getContext());
          imageDownloader.download(source, imageView);
          return imageView.getDrawable();
       }
    }, null));

    return textView;
}

但是,ListView 中没有出现任何图像,Logcat 中也没有报告错误。TextViews下载图像后是否ImageViews需要以某种方式刷新?

原来getView()是:

public View getView(int position, View view, ViewGroup parent) {
    if (view == null) {
        view = new ImageView(parent.getContext());
        view.setPadding(6, 6, 6, 6);
    }

    imageDownloader.download(URLS[position], (ImageView) view);

    return view;
}
4

1 回答 1

0

我将放弃使用 HTMLTextView呈现图像的最初想法,因为我认为将布局限制为每个TextView. 对于那些仍然真的想这样做的人,这个答案应该会引导你找到正确的解决方案。您必须再次将 传递TextViewBitmapDownloaderTaskandonPostExecute调用setText,但使用新下载或“解缓存”的图像。

可能还需要强制更新ListViewper Romain Guy 指南中的行。

于 2012-07-30T13:34:08.423 回答