如何在TextView中使html图像可单击

时间:2012-06-15 00:47:50

标签: android html textview

我在资源文件的字符串中有以下文字:

    <a href="mailto:mymail@mail.com">&lt;img src="mail_big" /&gt;</a>

它显示图像正常(我实现了ImageGetter),但它不可点击。我尝试过添加Linkify,但我不认为它适用于这种情况,所以它不起作用。 setMovementMethod也不起作用。

我尝试了以上的不同组合:

    <a href="mailto:mymail@mail.com">&lt;img src="mail_big" /&gt;hello</a>

在这里,即使是&#34;你好&#34;部分不可点击(既不是蓝色也不是下划线)。

    <a href="mailto:mymail@mail.com"><img src="mail_big" /></a>

这甚至不显示图像。

    &lt;a href="mailto:mymail@mail.com"&gt;&lt;img src="mail_big" /&gt;&lt;/a&gt;

如果我只是写电子邮件,而不是&lt; a&gt;标签它完美地工作,但我想使用用户可以点击的信封图像。无法使用图像按钮,因为此文本位于字符串的中间,因此我无法将其拆分。

有什么想法吗?

谢谢!

4 个答案:

答案 0 :(得分:4)

我会回答我自己的问题。

我找到了解决方案,或者更确切地知道如何正确地做到这一点。

我所要做的就是在TextView和ALSO中调用setText之前添加setMovementMethod调用,并且 COMPLETELY NECESSARY ,从布局中删除属性“android:autoLink =”all“。显然,解析字符串中的邮件和网址与解释字符串中的&lt; a&gt;链接标记是互斥的。所以一个或另一个,但不是两个。

最后我的布局只是一个TextView,没有什么特别的,只有宽度和高度。活动如下:

    TextView tv = (TextView)findViewById(R.id.about_text);
    tv.setMovementMethod(LinkMovementMethod.getInstance());
    tv.setText(Html.fromHtml(getString(R.string.about_content), new ImageGetter(), null));

字符串是这样的:

    <string name="about_content"><a href="mailto:nomail@mail.com"><img src="mail" /></a></string>

答案 1 :(得分:1)

不确定,但您可以尝试使用android:clickable="true"中的view

答案 2 :(得分:0)

你有吗

android:autoLink="all"

在你的xml for TextView中?

此外,如果您正在尝试显示图像,那么使用WebView很可能会更好,您可能会在打断HTML时遇到更少的打嗝,并且您应该能够将其设置为看起来与TextView(如果你想)

答案 3 :(得分:0)

TextView tv = new TextView(this);
tv.setText(Html.fromHtml("<a href=\"mailto:mymail@mail.com\">This is a test link</a>"));
tv.setClickable(true);
tv.setMovementMethod(LinkMovementMethod.getInstance());