如何将图像视图附加为电子邮件附件?

时间:2012-05-06 19:34:58

标签: android imageview email-attachments

我在图像视图上生成饼图,我想通过电子邮件发送它。

如何将图片视图的图片转换为电子邮件附件,因为它在资源中不可用?

3 个答案:

答案 0 :(得分:7)

在图片视图上调用getDrawingCache()。这将返回视图的缓存位图。阅读文档here

将位图保存为PNG,创建邮件并附加和发送。

Bitmap bmp = imgView.getDrawingCache();
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_WORLD_READABLE);
bmp.compress(Bitmap.CompressFormat.PNG, 0, fos);
fos.close();

/* Create a Action_SEND intent and attach the FILENAME image to the mail. */
...
intent.putExtra(Intent.EXTRA_STREAM, FILENAME); // FILENAME is URI
...
startActivity(....);

答案 1 :(得分:0)

最简单,最友好的Android方式是使用ACTION_SEND Intent。代码看起来像这样:

    path = "/path/to/image/"
    Intent sharingIntent = new Intent(Intent.ACTION_SEND);
    Uri screenshotUri = Uri.parse(path);

    sharingIntent.setType("image/png");
    sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
    startActivity(Intent.createChooser(sharingIntent, "Share image using"));

答案 2 :(得分:0)

在我看来,这里还有很多额外的工作要做。如果您在运行时使用ImageView,我们将其称为mImageView,那么您可以执行以下操作:

Drawable mDrawable = mImageView.getDrawable();
Bitmap mBitmap = ((BitmapDrawable)mDrawable).getBitmap();

现在您有一个Bitmap图像,您可以将其作为附件附加到电子邮件中。我没有原型,100%确定这将完全符合您的要求,但它似乎比将其保存到SD卡更优雅,因此您可以将其流回Bitmap并将其附加到一封电子邮件。

如果不起作用,请告诉我,我会尝试制作原型

谢谢, 大卫