我在图像视图上生成饼图,我想通过电子邮件发送它。
如何将图片视图的图片转换为电子邮件附件,因为它在资源中不可用?
答案 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并将其附加到一封电子邮件。
如果不起作用,请告诉我,我会尝试制作原型
谢谢, 大卫