通过电子邮件发送图片,Android?

时间:2012-04-12 13:04:45

标签: android image email bitmap

我正在尝试制作一个应用程序来捕获图像并通过电子邮件发送,我通过以下代码成功完成了

    String path = Images.Media.insertImage(getContentResolver(), bmp,"title", null);
    Uri screenshotUri = Uri.parse(path);
    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    emailIntent
            .putExtra(android.content.Intent.EXTRA_EMAIL, emailAddresses);
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
    emailIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
    emailIntent.setType("image/png");
    startActivity(Intent.createChooser(emailIntent, "Send email using"));

但图像是以小尺寸和非常低的分辨率发送的?有关使用它的实际尺寸和分辨率发送图像的任何建议吗?或者有没有其他方法从相机结果而不是位图获取jpeg图像?!

提前致谢

2 个答案:

答案 0 :(得分:0)

bmp是我假设的位图?然后,您可以使用位图类中的compress http://developer.android.com/reference/android/graphics/Bitmap.html#compress%28android.graphics.Bitmap.CompressFormat,%20int,%20java.io.OutputStream%29方法将图像保存到文件中,然后从文件中创建一个Uri。

插入图像时,您从Media收到的Uri可以是缩小版。

答案 1 :(得分:0)

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, EMAIL_SUBJECT);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, EMAIL_TEXT);
File newFile = new File(Environment.getExternalStorageDirectory(), IMAGE_PATH);
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM,Uri.fromFile(newFile));
startActivity(emailIntent);