作为原型,我尝试修改android-imagedownloader demo中的Android Developers Blog以使用HTML图片代码而不是硬编码ImageViews
。我已使用以下内容替换ImageAdapter.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;
}
答案 0 :(得分:0)
我将放弃使用HTML TextView
渲染图像的原始想法,因为我不认为将布局限制为每TextView
个图像是一个问题。对于那些仍然真的想要这样做的人,this answer应该引导您找到正确的解决方案。您必须再次将TextView
传递给BitmapDownloaderTask
并再次传递onPostExecute
setText
,但需要使用新下载或“已解除”的图片。
可能还需要强制更新ListView
每Romain Guy's guidance行中的行。