6

我有一个 html 将图像显示为 base64 :

    <html><body>hello<br/><img style='display:block; width:100px;height:50px;' id='base64image' src='data:image/png;base64,<!-base 64 string-->' /></body></html>

结果是这样的:

在此处输入图像描述

但是当我像这样在电子邮件中使用它时:

Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{to});
email.putExtra(Intent.EXTRA_SUBJECT, subject);
email.setType("text/html");
String body = new String("<html><body>hello<br/><img style='display:block; width:100px;height:50px;' id='base64image' src='data:image/png;base64,<!-base 64 string-->' /></body></html>");
email.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body));
startActivity(Intent.createChooser(email,"Choose an Email client :"));

结果如下:

在此处输入图像描述

图像不显示在邮件中。有什么我在这里想念的吗?传递base64数据是否有任何限制或其他问题?

4

2 回答 2

0

不幸的是,使用 Intents 是不可能做到这一点的。

例如,在 EditText 而不是 Image 中显示粗体文本的原因是 StyleSplan 正在实现 Parcelable 而 ImageSpan 没有。因此,当在新 Activity 中检索 Intent.EXTRA_TEXT 时,ImageSpan 将无法解包,因此不是附加到 EditText 的样式的一部分。

不幸的是,在这里无法使用其他不通过 Intent 传递数据的方法,因为您无法控制接收活动。

我搜索了很多这个问题,我在这个链接上找到了一个很好的答案:

https://stackoverflow.com/a/7550813/1186689

它给出了答案,也消除了所有的疑虑。

于 2013-09-17T12:48:04.777 回答
0

不确定这是否可行,但请尝试使用它

email.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body));

安装的

email.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body));
于 2013-09-17T07:06:29.990 回答