Ответ 1
Я пытался решить ту же проблему сегодня и найти решение. Чтобы сделать изображение кликабельным, вам нужно прикрепить объект ClickableSpan к тому же диапазону, что и ImageSpan для вашего изображения. Когда вы получите свой Spanned объект из Html.fromHtml(), вы можете пройти через набор объектов 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);
}