【问题标题】:base64 not display in image tag for email in androidbase64不显示在android中电子邮件的图像标签中
【发布时间】:2013-09-21 11:10:26
【问题描述】:

我有一个 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数据是否有任何限制或其他问题?。

【问题讨论】:

    标签: android email android-intent


    【解决方案1】:

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

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

    插入

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

    【讨论】:

    • 感谢您的回复。我会试试的
    • 我确信它不会改变任何东西。
    【解决方案2】:

    很遗憾,Intent 无法做到这一点。

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

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

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

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

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

    【讨论】:

    • 这是否意味着如果为 ImageSpan 实现 Parcelable 它应该可以工作?我现在真的没有时间,只是想知道。这个限制很烦人
    • 您无法控制调用的意图。你将如何传递 parcelable?
    猜你喜欢
    • 2013-09-13
    • 1970-01-01
    • 2014-12-20
    • 2018-09-30
    • 2012-06-23
    • 2019-12-14
    • 2013-04-27
    • 1970-01-01
    • 2020-08-20
    相关资源
    最近更新 更多