我一直在努力解决同样的问题,找到解决方案.
要使图像可点击,您需要将ClickableSpan对象附加到与图像的ImageSpan相同的范围.
当您从Html.fromHtml()获取Spanned对象时,可以通过为其分配的ImageSpan对象集,并附加其他ClickableSpan对象.
喜欢这个:
ImageSpan[] image_spans = s.getSpans(0, s.length(), ImageSpan.class);
for (ImageSpan span : image_spans) {
final String image_src = span.getSource();
final int start = s.getSpanStart(span);
final int end = s.getSpanEnd(span);
ClickableSpan click_span = new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(HtmlImagesTestActivity.this,
"Image Clicked " + image_src,
Toast.LENGTH_SHORT).show();
}
};
ClickableSpan[] click_spans = s.getSpans(start, end, ClickableSpan.class);
if(click_spans.length != 0) {
// remove all click spans
for(ClickableSpan c_span : click_spans) {
s.removeSpan(c_span);
}
}
s.setSpan(click_span, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}