gpt4 book ai didi

android - 如何为 ImageSpan 添加点击操作

转载 作者:IT老高 更新时间:2023-10-28 23:32:10 24 4
gpt4 key购买 nike

我在 TextEdit 中设置了 ImageSpan。我想添加 Action - 当用户点击 ImageSpan 时,它会弹出一个对话框并显示大图。

我检查了 SDK,似乎 ImageSpan 不支持 onclick。无论如何,是否可以为 ImageSpan 或其他支持 Image 的 Span 启用 onclick?

我检查了代码,发现有一个使用 ImageSpan 创建的 URLSpan,因为输入字符串是

但似乎 URLSpan 不起作用,并且没有为它创建点击操作。有什么想法吗?

谢谢。

最佳答案

我今天一直在尝试解决同样的问题并找到解决方案。要使图像可点击,您需要将 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);

}

关于android - 如何为 ImageSpan 添加点击操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5575438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com